Mitchell Starc took his 300th Test wicket as Australia reduced South Africa to 3-2 at lunch on the second day of the first Test in Brisbane on Sunday.
The South Africans were still 63 runs behind Australia at the break after they bowled the home side out for 218 midway through the first session.
At lunch, Sarel Erwee was not out on one with Temba Bavuma yet to score.
Australian captain Pat Cummins started the second innings rot when he trapped South African captain Dean Elgar lbw for two in just the second over.
Starc then reached the 300 wicket milestone when he bowled Rassie van der Dussen for a duck.
Australia began the second morning at 145-5, seven runs behind South Africa's first innings total of 152, with the first hour crucial for both sides.
Kagiso Rabada started the day poorly for the visitors, dishing up a series of half-volleys that Cameron Green happily despatched to the long-on boundary as Australia raced past South Africa's first innings total.
After three expensive overs Elgar lost patience and went to the towering Marco Jansen with immediate results.
Jansen had Green caught by first slip Erwee with his first ball, then two balls later Head gloved a ball down the leg side to keeper Kyle Verreynne to fall for a superb 92.
Any hopes South Africa had of keeping the Australian total below 200 vanished with a 31-run partnership between Alex Carey and Mitchell Starc.
But once Lungi Ngidi dismissed Starc with a sharp catch off his own bowling, the Australian tail offered little resistance, Pat Cummins and Nathan Lyon both falling for ducks to Rabada, who finished with 4-76.