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.
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.
Sri Lanka captain Kumar Sangakkara paid tribute to Tillakaratne Dilshan for his efforts of 92 and 123 in his new role as opener.
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.
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, dashing New Zealand's hopes.