Harris, who took nine wickets in the second Test in Perth but was wicketless for 91 runs in Melbourne, stumbled on an aborted run-up when bowling to England's Tim Bresnan at the Melbourne Cricket Ground.
The 31-year-old sat down by the wicket and surveyed his foot for a few moments before limping off the field.
"Ryan Harris developed ankle pain during England's first innings and scans have revealed a stress fracture of his left ankle," Cricket Australia doctor Trefor James said in a statement.
"Ryan is likely to require surgery and will consult a specialist in the next 24 hours."
A decision on whether Harris would bat in Australia's second innings would be made in due course, the statement added.
Harris was equal second in Australia's wicket-takers, sharing 11 wickets with Mitchell Johnson. Peter Siddle, who took six in England's first innings of 513 in Melbourne has 13.
Australia were set a 415-run target to force England to bat again with more than 2-1/2 days to play but began their chase disastrously when Shane Watson ran opening partner Phillip Hughes out for 23.
The five-Test series is level at 1-1, but victory in Melbourne will see England take the Ashes home for the first time in 24 years.