Fast bowler Rabada finished with six for 55 as Sri Lanka crumbled to 224 all out, giving South Africa a winning 2-0 lead in the three-match series. It took South Africa less than two hours to claim the remaining six wickets after the tourists resumed on 130 for four.
Overnight batsmen Angelo Mathews and Dinesh Chandimal played out the first five overs of the day without undue alarm before Rabada struck with the first ball of the sixth over when Chandimal (30) flicked him straight to Stephen Cook at square leg, the only fielder in a largely unmanned area of the field.
Sri Lankan captain Mathews fell to the last ball of the over, edging a lifting delivery to De Kock after making top score of 49 off 82 balls.
Rabada struck once more when he had Suranga Lakmal caught behind. It was the fifth time in his 13-Test career that he had taken five or more wickets in an innings. He had match figures of 10 for 92, his second ten-wicket haul.
Disclaimer: No Business Standard Journalist was involved in creation of this content