5 January 2017 04:12 pm
The Proteas have now won three series' on the trot and will aim for a whitewash when they play the third and final Test on January 12 in Johannesburg.
The hosts wrapped up the match in the first session of the day as Sri Lanka resumed on 130-4, but the wickets began to tumble following the dismissal of Dinesh Chandimal (30).
Upul Tharanga (12), Angelo Mathews (49), Suranga Lakmal (10), Lahiru Kumara (9) and Nuwan Pradeep (5) followed suit as Rabada ended the match with bowling figures of 6-55 from 17 overs in the second innings.
Overall, the 21-year-old took 10 wickets, which put him behind Vernon Philander as only the second South African player to nab two 10-wicket hauls.
The third and final test starts at the Wanderers next Thursday.