England, who had struggled to 226 for six on day one of this fourth Test, lasted less than an hour on the resumption.
Johnson took the wickets of both overnight batsmen, Tim Bresnan (one) and Kevin Pietersen (71), in his first over on the way to figures of five for 63.
Pietersen made his intention clear, to try to wrest the initiative here in a series England already trail 3-0, when he smashed his only runs of the day from the first ball high over point off Ryan Harris.
But Johnson got one in the perfect place to Bresnan, who was unable to fend a short delivery to ground and was caught by George Bailey stepping back from short-leg to collect a simple, looping catch.
Pietersen responded to the loss of the often reliable number eight with a failed attempt to counter-attack against Johnson.
The ambition and method appeared unrealistic, and ended with an astounding mow across the line which resulted in the loss of leg-stump to the left-armer's extreme pace.
After Pietersen's hard graft on day one, it was a bizarre change of tack - even with the tail exposed and few obvious remaining candidates to bat with him for any significant time.
Stuart Broad did stay long enough to collect two fours off Harris, and survive a caught-and-bowled chance to the same bowler, before Johnson produced a searing yorker to have him lbw - as he had in the third Test in Perth.
Last pair James Anderson and Monty Panesar managed to keep Johnson out, his spell spread over two days finishing on 9-3-18-5.
It therefore fell to Nathan Lyon to complete the innings when Panesar shouldered arms to the off-spinner and was bowled.