Kagiso Rabada ripped the heart out of Australia's middle order with 5-13 in a stunning 18-ball rampage.
Rabada snared 5-96 as Australia were bowled out for 243 after winning the toss and batting on a green-tinged pitch on day one of the second Test in Port Elizabeth.
DAY ONE WRAP: South Africa on top after Aussies' big collapse
BAN LOOMING? Rabada in hot water after nasty Smith send-off
Rabada did all of his damage on either side of tea, taking the key wicket of Australian captain Steve Smith, then following up by dismissing the Marsh brothers, Shaun and Mitchell, in his next over.
Tea was taken after Mitchell Marsh was out. With his remaining ball in the over, Rabada had Pat Cummins caught behind to be on a hat-trick.
He didn't manage that but 11 balls later he bowled Mitchell Starc.
Smith and Shaun Marsh had steadied the Aussie innings with a patient fourth wicket stand of 44 before Rabada started his devastation.
Rabada produced a fast delivery angled in to the stumps to strike Smith on the back pad.
Smith failed in a review of umpire Kumar Dharmasena's decision.
In Rabada's next over Shaun Marsh was beaten by a ball which swung into his pads and was also leg before.
Mitchell Marsh edged a four but then was caught behind off an inside edge.