South Africa 382 (de Villiers 126*, Elgar 57, Amla 56, Cummins 3-79) and 102 for 4 (de Villiers 28, Loyn 2-44) beat Australia 243 (Warner 63, Rabada 5-96, Ngidi 3-51) and 239 (Khawaja 75, Rabada 6-54) by six wickets
Port Elizabeth: Kagiso Rabada took 11 wickets in the match but may yet turn from hero to villain as South Africa beat Australia by six wickets in the second Test on Monday to level the four-match series.
South Africa made heavy work of reaching their modest target before captain Faf du Plessis (2) and Theunis de Bruyn (11) guided them to 102 for four.
The victory, however, is likely to be overshadowed by a ban for Rabada who was handed a new charge from the International Cricket Council (ICC) on Monday after already having a disciplinary hearing on Sunday.
His presence in the remainder of the series remains under threat with match referee Jeff Crowe set to announce the outcome of a hearing into a level two charge against the seamer for brushing against Steve Smith after dismissing the Australian captain in the first innings.
If found guilty, Rabada, who has 15 wickets at an average of 16.80 in the series, will miss the final two games after accumulating eight demerit points to trigger an automatic suspension.
Rabada was also slapped with a lesser level one charge on Monday for his exuberant celebrations when he dismissed David Warner in the second innings.
The 22-year-old Rabada was the outstanding performer on Monday as he ripped through Australia, who started on 180-5 with a 41-run lead.
He completed figures of 6-54 and a match aggregate of 11-150, the fourth time he has taken 10 or more wickets in a test.
The tourists lost Mitchell Marsh (45) in the first over as Rabada uprooted his middle stump before Pat Cummins (5) was well caught in the gully by De Bruyn.
Rabada got his third in quick succession as Mitchell Starc (1) edged a drive to wicketkeeper Quinton de Kock.
Lungi Ngidi (2-24) had Nathan Lyon (5) caught by De Kock, before Tim Paine (28 not out) and Josh Hazlewood (17) added 28 for the final wicket as Australia were dismissed for 239.
South Africa lost wickets regularly with opener Dean Elgar (5) going cheaply to be followed after lunch by Aiden Markram (21), Hashim Amla (27) and AB de Villiers for 28.
Australia won the first test in Durban by 118 runs. The final two matches in the series will be played in Cape Town and Johannesburg.