Paceman Dushmantha Chameera took career-best figures with aggressive short-pitched bowling to give Sri Lanka a slight advantage at the close of play on the second day of the second Test against New Zealand at Seddon Park in Hamilton on Saturday.
Doug Bracewell was unbeaten on 30 with Neil Wagner dismissed for 17 with two balls remaining in the day's play as the hosts finished on 232 for nine, 60 runs behind Sri Lanka's first innings of 292.
Chameera had sparked a top-order collapse shortly after Lunch by taking three wickets in 13 balls before he returned to pick up two more after Tea to end the day with figures of 5-47.
His previous best had been 3-53 against Pakistan in Colombo in June and his spell after Lunch had reduced the hosts to 89-4 before New Zealand's lower order buckled down.
Mitchell Santner (38) and BJ Watling (28) thwarted Sri Lanka for 19 overs and just 40 runs for the sixth wicket before Santner got the thinnest of edges off Nuwan Pradeep through to wicketkeeper Dinesh Chandimal after Tea.
Watling then fell to a low catch by Kithuruwan Vithanage at gully off Suranga Lakmal just after he and Bracewell had reduced the deficit to under 100 runs.
Chameera, however, returned for the final 40 minutes of play and got his fourth wicket when Tim Southee became the third batsman to fall into Angelo Mathews' leg-side trap.
New Zealand had been well placed at 61-0 at Lunch and proceeded to take 20 runs from the first two overs after the break before their innings fell apart.
Chameera, the quickest bowler in the match, had conceded 13 runs in his first over after Lunch, but then tightened up considerably as he bowled with pace and aggression and to a plan by Mathews to stack the leg side with fielders.
He had Tom Latham caught at leg gully for 18 and Kane Williamson snapped up by Suranga Lakmal at deep backward square for one.
The 23-year-old then angled a short delivery across Ross Taylor (0) that caught his glove and went through to Chandimal to leave the hosts on 89 for four.
Left arm-spinner Rangana Herath also grabbed two wickets before tea, dismissing Martin Guptill for 50 and New Zealand captain Brendon McCullum for 18.