Mitchell Johnson finished with figures of 7-68 as Australia rolled South Africa for 206 to claim a 191-run first-innings lead early on day three of the first Test.
AB de Villiers fell nine runs short of a century in a masterful knock, and fittingly it was Johnson who ended his resistance 45 minutes before lunch was due on Friday at Centurion.
De Villiers, who came to the crease on day two with the score 3-23 after Johnson sliced through the top order, dug the Proteas out of serious trouble in response to Australia’s 397.
But the 29-year-old fell to a mistimed drive shortly after shepherding his side past the follow-on.
Johnson then had Morne Morkel caught behind with his next ball, a fantastic bouncer, to complete the carnage he started on day two with a fearsome bouncer to Graeme Smith.
The left-armer needed four balls on day three to grab his 11th Test five-wicket haul with the scalp of Robin Peterson, who popped up a bouncer to Michael Clarke.
Vernon Philander formed a partnership of 49 runs with de Villiers, but Nathan Lyon made the breakthrough courtesy of Clarke’s second successful DRS review of a lbw decision.
The Australians set about building their lead, but they were dealt a blow when Chris Rogers (1) dragged a ball from Dale Steyn onto his stumps in just the second over.
David Warner (12no) and Alex Doolan (3no) took the Aussies through until lunch, with the score 1-18.