The fast bowler, who faces a ban from the remaining two Tests of the series, took six for 54 as Australia were bowled out for 239 in their second innings.
AB de Villiers, whose 126 not out enabled South Africa to lead by 139 runs on the first innings, hit a quick 28 off 26 balls before he was caught at short leg off Nathan Lyon with 20 runs still needed.
Rabada took the first three of the five Australian wickets that fell for the addition of 59 runs on Monday. He had match figures of 11 for 150 - the fourth time in his 28-Test career that he had ten or more wickets in a match.
There was a shadow hanging over the 22-year-old fast bowler, however.
He attended a disciplinary meeting convened by match referee Jeff Crowe on Sunday night after being charged with a level two offence following an incident in which his shoulder made contact with Australian captain Steve Smith on the first day.
The verdict was expected to be announced after the match. If found guilty Rabada will face a two-Test ban because of previous offences on his record.
Rabada was hit with a further charge on Monday, a level one offence, following a send-off of David Warner on Sunday.
Rabada struck in the first over of the morning when he bowled Mitchell Marsh for 45 with a ball which swung in sharply.
Pat Cummins fell to a sharp catch at gully by Theunis de Bruyn and Mitchell Starc edged a drive to wicketkeeper Quinton de Kock.
Lyon was caught behind off Lungi Ngidi and last man Josh Hazlewood hit a quick 17 before being caught in the deep off left-arm spinner Keshav Maharaj.
Tim Paine was left unbeaten on 28.
Lyon was brought on for the last over before lunch and with his first ball caught Dean Elgar off a leading edge as the left-handed batsman stretched forward. It was a near-replica of Elgar's dismissal to the off-spinner in the first innings of the first Test in Durban.
Aiden Markram had an escape in the second over of South Africa's chase. With his score on six he was dropped at first slip by Mitchell Marsh off Hazlewood.
Markram made 21 before he was caught by Smith at second slip off Hazlewood.
(This story has not been edited by Business Standard staff and is auto-generated from a syndicated feed.)