New Zealand skittled Sri Lanka out for just 122 runs in the second innings, taking a series-levelling victory by an innings and 65 runs on the final day of a rain-hit second test in Colombo.
New Zealand had batted on for five overs in the morning, allowing BJ Watling to complete a century before declaring their first innings closed on 431 for six.
That gave the Black Caps, who lost the opening test in Galle, a lead of 187 with 91 overs of play left. Their bowlers provided them with the early strikes they needed, reducing Sri Lanka to 32 for five before lunch.
The hosts did not have regular captain Dimuth Karunaratne available to open the innings after he suffered a torn quadriceps while fielding on Saturday.
He was unable to bat higher than number seven in the second innings, though when he did take to the field, he and Niroshan Dickwella batted resolutely for a 51-run sixth wicket partnership that give Sri Lanka hopes of a draw.
Karunaratne eventually fell lbw for 21 to seamer Tim Southee, however, while wicketkeeper Dickwella, who had suffered a finger injury, delayed the inevitable a little longer with a 51.
Trent Boult, Tim Southee, Ajaz Patel and Will Somerville all took two wickets.
Earlier in the day Watling had remained unbeaten on 105, completing his seventh test century before captain Kane Williamson declared.
Rain had allowed just 66 overs on the first two days of the match, and 48 overs on the fourth.