Australia were set 399 to win but following a top-order collapse, pace bowler Pat Cummins finished unbeaten on 61 to help the hosts reach 258-8.
Earlier, Cummins had taken a career-best 6-27 when India declared their second innings on 106-8 before lunch.
Victory for either side would earn them a 2-1 lead in the four-Test series.
India had begun the day on 54-5, a lead of 346, with Mayank Agarwal making his way to 42 but captain Virat Kohli declared immediately when wicketkeeper Rishabh Pant fell for 33.
Australia then lost both their openers inside 10 overs as Aaron Finch was caught by Kohli at second slip for three, and Marcus Harris was caught at short leg off Ravindra Jadeja for 13.
Left-arm spinner Jadeja later returned to dismiss the recalled Mitchell Marsh and keeper-captain Tim Paine to leave Australia relying on their lower order.
But Cummins kept the game alive, adding his highest Test innings to his best first-class bowling figures, resisting for 103 balls.
Though he lost Mitchell Starc for 18, Cummins and Nathan Lyon have added 43 for the ninth wicket in 14 overs to maintain hopes of an unlikely victory on day five.
The highest successful fourth-innings run chase at the MCG came in 1928, when England made 332-7.