His dismissal triggered a slide of 3-26 before a late cameo by Ryan Harris, who hit 55 from 54 balls and hurried on the declaration.
Harris clubbed sixes on consecutive balls from Graeme Swann to lift Australia past 500 after coming in at No. 9. Those were just two of the dozen sixes in the innings, including five from Haddin.
The 36-year-old wicketkeeper had some luck, getting three reprieves from some hapless England fielding before reaching his fourth test century. It followed his 94 and 53 in Australia's 381-run win in the first test and again played a key role in restoring the innings.
He was dropped on 5 just before stumps on day one, and had a few close calls on Friday.
"You need to have a bit of luck in this game. You can do all the technique you want, but everyone needs luck I had my fair share," Haddin said, adding that his partnership with Clarke came at a crucial time. "It was very important that we batted deep in this first innings, so to get 550 on the board ..."
Johnson unsettled England with some short-pitched bowling in Brisbane, where he took nine wickets, and was even quicker in Adelaide.
After removing Cook, he cannoned a short ball into Root's chest guard at almost 150 kph that stunned the English batsmen. On the next-to-last ball before stumps, Root took off for a single that nearly resulted in a run out for Carberry. On the last ball, Johnson hit Carberry on the pads but the Australians thought it was going down legside. TV replays later showed Johnson would have got an lbw decision if he'd called for a review.
Australia dominated from the start on Friday after sharing the honors with England on day one. Chris Rogers (72), Shane Watson (51) and David Warner (29) all got starts on day one but failed to convert. Clarke changed the momentum in an 83-run stand with George Bailey (53) for the fifth wicket. And England's fielders contributed by dropping three catches.
Those, plus two more missed catches and a missed run-out on Friday cost England hundreds of runs.
Clarke came into the test averaging more than 100 at Adelaide Oval and notched his sixth test hundred at the venue.
He missed training this week with an injured right ankle, and gave a couple of chances on 18 and 91, but was otherwise was on top of the attack in a 245-ball innings that contained 17 boundaries.
He was finally out to a tired chip at a slower ball from Ben Stokes, giving the New Zealand-born allrounder a big first wicket in test cricket. Stokes earlier thought he had Haddin caught behind for 51, but the TV umpire ruled a no-ball.
"It has been a very tough two days," Stokes said. "We've got to put that behind us now and focus on what's ahead, which is to bat long." He said missing out on Haddin's wicket was frustrating, but he put it behind him with the later dismissal of Clarke.
"A very special moment, something that I'll never forget," Stokes said. "It's my first test wicket and a very proud moment."
After Clarke's departure, Johnson (5) and Peter Siddle (2) gave Swann and Stokes (2-70) their second wickets of the innings.
Harris took up the attack late in an unbeaten 41-run last-wicket stand with Nathan Lyon, who was unbeaten on 17 when Clarke declared.
Stuart Broad returned the best figures for England with 3-98, while spinners Swann (2-151) and Monty Panesar (1-157) were punished by the batsmen.