Cape Town - Kagiso Rabada ripped through the Sri Lankan batting order on Thursday morning as the Proteas secured a comprehensive 282-run victory in the second Test at Newlands.

The 21-year-old speedster finished with 6/55 in the second innings, and 10/92 in the match, as South Africa took an unassailable 2-0 series lead with just the third Test in Johannesburg on January 12 to come.

SCOREBOARD: SA V SRI LANKA, 2ND TEST

It is Rabada's fifth five-wicket haul in Tests and his second 10-wicket match haul.

Having started day four on 130/4 and a massive 377 runs away from victory, Sri Lanka needed something special.

They had the experience of Angelo Mathews and Dinesh Chandimal at the wicket, and that pair put on a brave showing before Rabada got going.

South Africa'a poster boy first removed Chandimal (30), caught by Stephen Cook at square leg, to bring a 75-run fifth-wicket partnership to an end.

Rabada then had both Mathews (49) and Upul Tharanga (12) caught behind by Quinton de Kock and when Saranga Lakmal (10) was also caught behind, Rabada had picked up four wickets in the first hour of play.

A 33-run flurry for the ninth wicket followed, but Keshav Maharaj had his first wicket of the innings when teenager Lahiru Kumara came dancing down the wicket only to miss and be stumped by De Kock for 9.

Vernon Philander then wrapped things up when he knocked over Nuwan Pradeep for 5.

Earlier in the Test, Dean Elgar (129) and De Kock (101) had scored centuries in South Africa's first innings total of 392 before Vernon Philander (4/27) and Rabada (4/37) helped bowl the visitors out for 110.