Dale Steyn and Morne Morkel finished with four wickets apiece as South Africa made short work of wrapping up victory over Sri Lanka by 153 runs in the first Test at Galle.
From 110 for one overnight in pursuit of 370, the hosts crumbled to 216 all out despite 76 from Kumar Sangakkara and the defiance of captain Angelo Mathews, who ended unbeaten on 27 from 70 deliveries.
Having already won the one-day international series 2-1, the Proteas are now certain to at least draw the two-Test series.
Sangakkara was 58 not out overnight but quickly lost partner Kaushal Silva for 38, wicketkeeper Quinton de Kock with a flying catch to give Steyn his second wicket - the same combination were responsible for Upul Tharanga's dismissal on Saturday.
Morkel claimed his first scalp when Mahela Jayawardene (10) edged to De Kock and the key wicket of Sangakkara fell before the 150 came up.
The 36-year-old was distraught after slapping a filthy long hop from s pinner JP Duminy straight to South Africa captain Hashim Amla at short mid-wicket.
Lahiru Thirimanne soon fell for 12, slicing an uppish drive off Steyn to AB de Villiers at slip.
And when Morkel and Steyn removed Dinesh Chandimal (one) and Dilruwan Perera (nought), De Kock pouching both to complete five catches for the innings, Sri Lanka were deep in trouble at 161 for seven.
Rangana Herath and Suranga Lakmal at least went down fighting, the former striking four boundaries in his 20 from 18 balls before a top edge off Duminy was well caught by De Villiers on the run.
Lakmal hit 12, all in boundaries, before skying Morkel to Imran Tahir at long leg and last man Shaminda Eranga, who had been doubtful to bat at all with eight stitches in a hand injury, came out to the wicket but was bounced out first ball by the rangy paceman.
That gave Morkel figures of four for 29 while Steyn's wickets cost 45 for match figures of nine for 99 and the man of the match award.