Sri Lanka clinched a resounding 202-run victory on the final day to take a 1-0 lead in their two-match Test series against New Zealand on Saturday.
The hosts set New Zealand an unlikely 413-run victory target and dismissed them for 210 in 71.5 overs shortly before tea on the final day.
Spinner Muttiah Muralitharan claimed three for 88 for a match haul of seven for 161, to mark an impressive return to Test cricket after a knee injury.
Skipper Daniel Vettori, battling a stomach bug in scorching heat, provided some resistance with a gritty 67, but the next highest score was Brendon McCullum with just 29.
Left-arm fast bowler Thilan Thushara, Sri Lanka's leading paceman in this match, struck early when play started on time, for the first time in this rain-interrupted game.
Thushara's burst left New Zealand reeling at 39 for three after Martin Guptill (18) was bowled by a beautiful leg-cutter and Tim McIntosh was caught low down at slip for a duck.
Sri Lanka skipper Kumar Sangakkara then sprang a surprise, throwing the ball to part-time spinner Mahela Jayawardene.
However, the unorthodox tactic worked, Jayawardene snaring Ross Taylor (16) thanks to a fine leg-side catch from wicketkeeper Prasanna Jayawardene.
Leg spinner Ajantha Mendis then had Jacob Oram trapped leg before for 21, reducing the visitors to 125 for five at lunch.
After the interval, Vettori and Jesse Ryder (24) battled hard with a 48-run stand for the sixth wicket.
Muralitharan eventually had Ryder caught behind with a flighted off break that spun sharply.
The bowler followed up with the wickets of Jeetan Patel (22) and Iain O'Brien (five) and Mendis had Vettori caught behind, dashin New Zealand's hopes.
Thushara finished with two for 37 from 14 overs and Mendis claimed two for 50 from 18.5 overs.