The spin of Nathan Lyon and the reverse swing of Mitchell Starc sent South Africa crashing on the second day of the first Test against Australia at Kingsmead.
South Africa were bowled out for 162 shortly before the close, giving Australia a lead of 189 runs on the first innings.
Lyon started the slide for the hosts and finished with 3-50 before the tall left-armer Starc gave a magnificent display of fast, reverse swing bowling to take 5-34.
AB de Villiers played almost a lone hand for South Africa, making 71 not out.
Mitchell Marsh struck 96 for Australia. Largely through his efforts, as well as an aggressive innings of 35 by Starc, Australia's last three wickets added 100 runs to take them to a total of 351.
On a pitch which has proved even slower than predicted by both captains, left-arm spinner Keshav Maharaj took 5-123 for South Africa.
Spin continued to be effective when South Africa batted. Off-spinner Lyon was brought on in the eighth over and took two wickets in his first over.
Starc used reverse swing and bowled from around the wicket to make the ball move disconcertingly away from the right-handed batsmen before blasting out the last two batsmen, both left-handers, with full deliveries bowled from over the wicket.
Dean Elgar and Aiden Markram put on 27 for South Africa's first wicket and were looking reasonably comfortable until Australian captain Steve Smith brought Lyon into the attack in the eighth over.
He had almost immediate success, catching Elgar off his own bowling with his second delivery. Three balls later he had Hashim Amla caught off bat and pad at short leg.
Markram (32) fended a short ball from Pat Cummins to give Cameron Bancroft a second catch at short leg to leave South Africa reeling at 55-3 at tea.
De Villiers and captain Faf du Plessis batted confidently after tea, scoring freely off Lyon so that the spinner was taken off after a spell of 2-36 in ten overs.
He was replaced by the Starc, who struck twice with reverse swing, having both Du Plessis and Theunis de Bruyn caught behind off balls which moved away from them.
Brought back into the attack, Lyon ended a promising sixth-wicket stand of 42 between De Villiers and Quinton de Kock, bowling De Kock for 20.
Almost from the start of his innings, De Villiers looked in a different class to his team-mates, timing the ball superbly despite the slow pitch. He reached his fifty off 81 balls with nine fours.
Mitchell Marsh, who had made centuries in two of his previous Tests, both against England, looked set for another until he drove Vernon Philander to mid-on, where Morne Morkel, South Africa's tallest fielder, leapt to take the catch.
Marsh batted cautiously to be on 60 not out off 147 balls at lunch, seeing off the second new ball, before adding another 36 runs off only 26 balls after the interval. He hit 13 fours and a six.
Starc hit 35 off 25 balls to provide a momentum shift for Australia before being bowled by Maharaj in the last over before lunch.
Watch day three of the first Test between South Africa and Australia from 9am, Saturday on Sky Sports Cricket.