Australia are on track to win the Boxing Day Test inside three days after Sri Lanka went to lunch at the MCG teetering at 4-43 still 261 runs from forcing the dominant hosts to bat again.
Earlier on Friday, Australia were dismissed for 460 in reply to Sri Lanka's miserable first innings of 156 with Mitchell Johnson left stranded eight short of a second Test century.
But any momentum the tourists held quickly disappeared as Johnson (1-7) and Jackson Bird (2-10) dismantled their flaky top order.
Sri Lanka had dramatically slumped to 4-13 midway through the session before unbeaten pair Kumar Sangakkara (22) and Angelo Mathews (17) stemmed the bleeding.
Johnson started the rot with the run out of Dimuth Karunaratne (one) in the first over and removed Tillakaratne Dilshan (zero) the very next ball when Ed Cowan pouched a catch at square leg.
Debutant Bird made matters worse for the besieged hosts when he bowled Mahela Jayawardene for a duck and trapped Thilan Samaraweera lbw for one.
Light showers delayed the start of play by 15 minutes on Friday morning before Australia added 20 runs for the loss of Nathan Lyon, caught at short mid-wicket for one, and Bird, comprehensively bowled by Eranga for a duck, leaving Johnson 92 not out.
The number seven, who claimed 4-63 including his 200th victim in Sri Lanka's first innings, hit seven boundaries in his 184-ball knock.
Shaminda Eranaga (3-109) and Dhammika Prasad (3-106) were the leading bowlers for Sri Lanka.
Victory would see Australia retain the Warne-Muralitharan Trophy with the third Test in Sydney still to be played.
But they will have to achieve it without pace-bowling all-rounder Shane Watson, who is unlikely to bowl again this match after suffering his second calf injury of the summer.
Watson is in doubt for next week's Sydney Test and has played only three matches in the six-Test summer against South Africa and Sri Lanka.