Cameron Green's status as Australia's premier men's all-rounder has been cemented by his first five-wicket haul, demolishing South Africa on Boxing Day.
The tourists were dismissed for 189 before Australia ended day one on 1-45, with David Warner (32*) and Marnus Labuschagne (5*) at the crease.
Having been sent in to bat for the second straight Test by Australia captain Pat Cummins, South Africa lost four wickets on the first morning of the second Test and another just after lunch, before Kyle Verreynne and Marco Jansen put on 112 runs for the sixth wicket.
During that partnership, Australian strike bowler Mitchell Starc was forced from the field, apparently giving the Proteas the ascendancy, but then Cameron Green came to the fore, sparking 24 minutes of carnage that saw the Proteas lose 5-10.
First he broke the resilient partnership when he had Verreynne caught at slip for 52, then three balls later had Jansen caught behind for 59, leaving South Africa without a set batter at the crease.
Five balls later, Green had Rabada chopping onto his own stumps and, after Nathan Lyon removed Keshav Maharaj in the following over, the all-rounder clean bowled Lungi Ngidi to end the innings with South Africa all out for 189 — their seventh straight Test innings of under 200.
Having already claimed recalled first drop Theunis de Bruyn in the morning, Green's late 28-ball spell of 4-10 gave him innings figures of 5-27 — the first five-wicket haul of his 18-Test career.
Green, while valued very highly by IPL franchise Mumbai Indians, has struggled with the bat of late, but has proven his all-round brilliance with sensational fielding at gully, and now stepping into the void of a frontline bowler like Starc, who badly hurt the middle finger on his bowling hand attempting a catch in the deep.
Green's late show was a true game changer after Verreynne and Jansen frustrated Australia for most of the afternoon.
South Africa had started well enough, losing just opener Sarel Erwee (18) in the first hour-and-a-half of play, but the top order disappeared when they lost 3-2 just before lunch.
Green had de Bruyn (12) caught by wicketkeeper Alex Carey when he skied a pull shot, failing to pay selectors back for recalling him in place of Rassie van der Dussen.
Opener Dean Elgar had been dropped by Lyon on 19 and narrowly avoided chopping on even earlier in his innings, but his luck ran out when he tried to steal a single in the 23rd over.
Starc had buttered up South Africa's skipper, who looked to get off strike with a push to cover, but Labuschagne raced around from mid-off, picked up and threw down at the non-striker's end.
It was the first run-out in Elgar's Test career, and came just after he passed 5,000 runs in Test matches.
Next ball, Starc claimed the wicket of Temba Bavuma (1), as South Africa went from 1-56 to 4-58 in the space of 19 balls before lunch.
Labuschagne was again in the heart of the action after the long break, spectacularly catching Khaya Zondo (5) on a full-length dive at mid-off, before Verreynne and Jansen steadied the ship after being united with their team floundering at 5-67.
Verreynne and Jansen's 112 for the sixth wicket was just the third century partnership South Africa had managed from 11 Test matches in 2022.
Verreyne's knock was similar to his first innings in Brisbane, when he top-scored with 64 of South Africa's 152 after being sent in on a Gabba greentop, while Jansen notched his first Test half-century.
The 22-year-old copped plenty of punishment on gloves and body from the Australia seamers, but grew in confidence as a result, exchanging the edges of his early innings with sumptuous drives down the ground.
He passed 50 for the first time in Test matches with a shot that exemplified his innings, a sweetly timed lofted drive down the ground off Lyon for four, which was inches from being caught by a diving Starc at long-on.
Worryingly for Australia, Starc left the field immediately after attempting to make that catch with what appeared to be an injury to the middle finger on his bowling hand.
He returned to the field with his middle finger strapped late in the day, but immediately returned to the sheds once it was clear the end was nigh for the Proteas' batting effort.
It left an awkward batting period for the Australian openers, and while all eyes were on the battling David Warner in his 100th Test match, Usman Khawaja was the one who fell to Rabada in the seventh over for just 1.
An energetic Warner powered his way to 32 off 51 by stumps.