Scorecard
At tea, Sri Lanka were still hanging at 168 for 7, but with the new ball available, New Zealand's bowlers made short work of the Sri Lankan tail. Angelo Mathews, who scored 84, was the last man to fall for Sri Lanka.
New Zealand took two quick wickets in the afternoon. Sri Lanka, chasing a 363-run target, lost Prasanna Jayawardena and Suraj Randiv in the afternoon session at the P Sara Oval in Colombo.
Mathews continued to offer stiff resistance to New Zealand, batting more than two sessions and hitting one six and six fours. Nuwan Kulasekara was unbeaten on 18 at tea.
Todd Astle, the debutant legspinner, provided the crucial breakthrough in the afternoon when he had Jayawardena (29) caught behind with a delivery that turned and bounced for his first Test wicket.
Jayawardena was involved in a defiant 56-run stand for the sixth wicket with Mathews.
Trent Boult, who got four wickets in the first innings, then had Randiv caught by Martin Guptill at second slip.
New Zealand tightened their grip on the match on Wednesday when they took four quick wickets, including those of Mahela Jayawardena, Tillakaratne Dilshan and Kumar Sangakkara. But they struggled in Thursday's morning session to finish off Sri Lanka, who added 60 to their overnight total of 47 for 4.
Mathews and Prasanna Jayawardena were watchful during their 44-run stand after their team lost the big wicket of Thilan Samaraweera in the opening hour - run out after a mix-up with Mathews.
Samaraweera, who top-scored in the first innings with 76, had added just six to his overnight one.
Mathews and Prasanna Jayawardena then denied New Zealand for more than 23 overs. Mathews has so far faced 106 balls with his partner facing 69.
Sri Lanka lead the series 1-0 following their ten-wicket victory in the opening Test at Galle.
Colombo Test: New Zealand beat Sri Lanka to end 9 Test winless streak
Advertisement