A day that began with promise for England quickly unravelled in the field as Australia captain Michael Clarke and his deputy Brad Haddin scored glittering centuries in a record sixth-wicket partnership at Adelaide Oval.
Adding insult to injury, Clarke, who struck 148 for his second ton in successive tests, waited until 34-year-old paceman Ryan Harris had compiled his second test fifty before declaring on 570-9 after tea in glorious sunshine.
Johnson then captured the key wicket of Cook for three, beating the England skipper for pace with a searing delivery that knocked over his off-stump and sent a raucous crowd of more than 35,000 into paroxysms of delight.
Michael Carberry (20 not out), and Joe Root (nine not out), promoted to number three in place of the departed Jonathan Trott, dug in grimly in the final hour but Johnson could have also dismissed the opener on the final ball of the day.
Unleashing rockets over 150 kph (93 mph), Johnson trapped Carberry in front, but Australia, surprisingly, declined to review the not out decision for lbw only for Hawk-Eye to track the ball hitting leg stump.
"Myself, Watto (Shane Watson) and Michael (Clarke) all thought it was going down leg and Mitch (Johnson) exactly the same," Haddin told reporters.
"As we'd seen when we came off we were wrong, so we haven't learnt with the DRS by the looks of it."
Carberry reprieved, England were 35-1 at the close, still 535 shy of Australia's total and facing a Herculean task to claw themselves back into the game.
Despite losing the toss, England had battled hard to earn a share the spoils on Thursday's opening day, but squandered their opportunity on an overcast morning when play resumed at 273-5.
Having dropped three catches on day one, the tourists committed a number of howlers in the field on Friday to allow Clarke and Haddin to notch a 200-run partnership, including 116 runs in a swashbuckling morning session.
Clarke's love affair with Adelaide Oval continued as he raised his fourth ton from his last nine tests at the ground, which have also included two double-centuries and three 50s.
Fielding at short leg, Ian Bell put down a tough chance which would have seen Clarke dismissed for 91, when the Australian skipper charged down the wicket at spinner Swann only to nick it behind.
Appearing set for a third double-century in Adelaide, it was something of a surprise when Clarke was eventually dismissed, miscuing a drive off debutant all-rounder Ben Stokes to be caught by a diving James Anderson in close.
Haddin, dropped on five by Carberry on Thursday, could have been run out on 18 but for poor fielding and was granted another life on 30 when he sent an errant pull-shot high in the air only for Monty Panesar to pull up rather than dive for a catch.
Stokes later had Haddin caught behind on 51 only for his maiden test wicket to be taken away on review when it was shown he had overstepped the mark.
The hard-bitten 35-year-old rode his luck to blast his way to 118 with five sixes before nicking a catch to fellow wicketkeeper Matt Prior when flashing at a Stuart Broad delivery.
The knock continued Haddin's sparkling form with the bat following a 94 in the first test in Brisbane that resurrected Australia's first innings and his 53 in the second.
Paceman Harris notched his half-century with a delightful square cut to the fence and finished unbeaten on 55 after caning the England attack with six fours and two sixes.
Number 11 batsman Nathan Lyon also helped himself to a six and finished unbeaten on 17 at the declaration.
New Zealand-born Stokes finished with 2-70 from his 18 overs, with Broad England's best bowler with 3-98.
Recalled spinner Panesar was hammered for 1-157.
"To get the first wicket, a proud moment," 22-year-old Stokes said. "It has been a very tough two days. We've got to put that behind us now and focus on what's ahead, which is to bat long."