Port Elizabeth: Kagiso Rabada produced a sublime spell of bowling to take five wickets as Australia were dismissed for 243 in their first innings on the opening day of the second Test on Friday.
Rabada began expensively before lunch, conceding 47 runs, but then returned to claim five wickets for the loss of just 13 runs on either side of tea and effectively turn the game around.
South Africa were 39 for one wicket in reply at the close, losing Aiden Markram for 11 runs.
Rabada completed a fine day's performance coming in as the nightwatchman and scoring an unbeaten 17 runs off 14 balls. He will resume with Dean Elgar, who is 11 not out, on Saturday.
Rabada finished with bowling figures of 5-96 while the 21-year-old Lungi Ngidi, who was a surprise pick ahead of Morne Morkel, took 3-51 including bowling David Warner for 63.
Warner, who was also slow to get going, found some flow late in the morning and reached 50 at lunch.
The Australian opener had been the focus of much of the build-up to the second test after an ugly spat last Sunday with South Africa wicketkeeper Quinton de Kock in the first test in Durban, which the tourists won by 118 runs.
Warner was eventually bowled for 63 on Friday as Australia reached 117-3 but it was only when Rabada trapped captain Steve Smith lbw for 25 that the wickets began to tumble.
Five went down for just for 21 runs as Rabada also dismissed the Marsh brothers, Shaun and Mitchell, and then Pat Cummins for a golden duck after tea.
Mitchell Starc (8) was Rabada's fifth victim, clean bowled to leave Australia reeling on 182-8.
But Tim Paine scored 36 runs as Australia added 61 runs for the last two wickets to the frustration of home side. Paine was the last wicket to fall when Ngidi bowled him.