Muttiah Muralitharan took three wickets and ran out last batsman Brendon McCullum as Sri Lanka beat New Zealand by 202 runs on Saturday with a session to spare in the first cricket Test.
New Zealand resumed the final day at 30 for one, pursing a victory target of 413 but more realistically trying to bat through the day to force a draw.
The tourists lost their last three wickets for six runs and were all out for 210, ending the chase when Muralitharan threw down the stumps from mid-off as McCullum pushed for a single in a bid to retain the strike.
Opener Tillakaratne Dilshan was instrumental in the win, contributing 92 from 72 balls in Sri Lanka's dominant first innings of 452 and then, after paceman Thilan Thushara and veteran spinner Muralitharan took four wickets apiece to restrict the Black Caps to 299, he belted an unbeaten 123 before Sri Lanka declared at 259 for four in the second innings.
Thushara (2-37) also made the first two breakthroughs on Saturday as New Zealand lost three top-order wickets for just six runs to slump to 45-4.
With only the addition of six runs in the morning, Thushara was immediately rewarded for changing to bowl around the wicket, beating Martin Guptill (18) with a ball that clipped the top of off stump.
In his next over, Thushara induced new batsman Tim McIntosh (0) to play at a wide ball, catching the outside edge and Thilan Samaraweera snapped up a low catch at third slip.
Part-time bowler Mahela Jayawardene was introduced and had immediate success with a wicket on his second delivery. Ross Taylor poked at a ball drifting down legside, getting a thin edge to wicketkeeper Prasanna Jayawardene.
Jacob Oram and Daniel Vettori settled the innings for a while, adding 41 for the fifth wicket before Oram (21) missed an attempted sweep off Ajantha Mendis, and was adjudged lbw.
Captain Vettori and Jesse Ryder added 48 runs for the sixth wicket to take the total up to 134 before Muralitharan had Ryder caught behind for 24.
Vettori was out to Mendis for 67 in the 62nd over and McCullum batted defiantly for 29 until he was run out. Muralitharan finished with 3-88.
The New Zealanders, who were depleted by a virus that circulated around the team, will only have days to regroup before the second and final test starts Wednesday in Colombo.