The beleaguered tourists, with the Ashes already lost, boosted their chances of averting a 5-0 series clean sweep with a rare rewarding day in the field as they defended what had appeared to be a below-par first innings total of 255.
But disciplined bowling and fielding stifled Australia's scoring and with it the wickets tumbled to put the home side under pressure on a slow-paced MCG pitch.
At the close, Australia were 164 for nine, trailing England by 91 runs with Brad Haddin on an unbeaten 43.
Captain Alastair Cook's tactics of drying up the runs reaped rewards with the cheap dismissals of David Warner (9), Shane Watson (10), Michael Clarke (10), Steve Smith (19), George Bailey (0), Johnson (2), Ryan Harris (6) and Peter Siddle (0).
More From This Section
Led by pacemen Jimmy Anderson with three for 50 and Stuart Broad three for 30, England tied up the vaunted Australian batsmen and looked set for what could prove a significant innings lead on a pitch which is expected to play harder through the Test match.
Warner top-edged Anderson high into the air to give wicketkeeper Jonny Bairstow a straight forward catch and Watson was snapped up behind off Ben Stokes.
Anderson surprised Clarke with a delivery that shaped back in and collected the top of off-stump. The Australia skipper was pinned down with his 10 runs coming off 34 balls.
England's bowling frustrated Smith trying to cut too close to his body and edged Broad to Ian Bell in the slips for 19 off 77 balls.