South Africa pace bowlers Dale Steyn and Morne Morkel helped themselves to four wickets apiece as the tourists secured a 153-run win over Sri Lanka in the first match of their two-Test series.
Steyn grabbed 4-45 and Morkel 4-29 as the Proteas bowled out Sri Lanka for 216 on Sunday, 153 runs shy of their target of 370 to win in Galle.
From 110-1 overnight the hosts crumbled despite 76 from Kumar Sangakkara and the defiance of captain Angelo Mathews.
Having already won the one-day international series 2-1, South Africa are now certain to at least draw the 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 - a mirror image of 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 spinner 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 (1) and Dilruwan Perera (0), De Kock completing five catches for the innings, Sri Lanka were deep in trouble at 161-7.
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 4-29 while Steyn's wickets cost 45 for match figures of 9-99 and the man-of-the-match award.