Young pace bowler Kagiso Rabada completed what his captain termed "the perfect performance" by South Africa after his 10-wicket haul for the match bowled them to a 282-run victory over Sri Lanka in the second test on Thursday.
Rabada claimed four of the six wickets South Africa still required for victory on day four to take 6-55 and bowl Sri Lanka out for 224 in its second innings.
In the process he recorded figures of 10-92 in the match as South Africa's dominant victory gave it an unassailable 2-0 lead in the three-match series.
"It was pretty much a perfect performance. Everything was planned and everything worked out perfectly," South Africa captain Faf du Plessis said.
"It was an amazing bowling performance from 'KG'. He's an extreme talent for us and he's going to be very valuable for us in future."
Angelo Mathews and Dinesh Chandimal had hinted that Sri Lanka could put up a fight in its second innings by batting out the final hour on day three, but they did not last long after resuming on 130-4.
Chandimal (30) was the first to go in the sixth over of the day when he chipped Rabada tamely to square leg, before the seamer's next over claimed both Upul Tharanga and Mathews (49).
When Suranga Lakmal edged through to the wicketkeeper soon after, Rabada had his second 10-wicket haul in just his 13th test.
The 21-year-old was then removed from the attack after a seven-over spell that brought 4-33, leaving Keshav Maharaj and Vernon Philander to grab the final two wickets of the match.
"It's disappointing to repeat the same mistakes over two Test matches," Mathews said.
"You need long hours of concentration against a quality attack like South Africa. They give you a very rare loose ball, and if you try to score runs off the good balls, you end up nicking off to the slips or the keeper."
South Africa had set up the match on the opening two days.
Opener Dean Elgar battled through seam-friendly conditions to score a century as South Africa reached 392 in its first innings despite losing the toss and being asked to bat first.
Rabada and Philander then took four wickets apiece to bowl Sri Lanka out for just 110, after which the result appeared a formality.
"For an opening batsman to get a hundred on a wicket like that was great batting, and there was great bowling from our bowlers," Du Plessis said.
"We were relentless. We didn't let Sri Lanka into the game once. Every time we stood up and that was the most pleasing thing for me as a captain."
The third and final test gets underway in Johannesburg on January 12.