Young pace bowler Dushmantha Chameera has grabbed his first five-wicket bag with Sri Lanka striking back after a solid Black Caps start in reply to 292 in the second Test.
At stumps on day two in Hamilton, New Zealand were 9-232, 60 runs behind, with Doug Bracewell not out 30.
The main damage was done in Saturday's middle session, after openers Martin Guptill and Tom Latham had taken their third half-century partnership of the series to 81.
As Sri Lanka pursued a short-ball strategy, the introduction of Chameera as their fifth bowler provided the breakthrough.
New Zealand went on to lose four wickets in eight runs, with Chameera taking three of the scalps in a seven-over spell that returned 3-17.
The 23-year-old was then rested until the day's final hour, when he dismissed Tim Southee to go past his previous best figures in a four-Test career.
He got a bit more stick in his second spell, with Neil Wagner hitting two fours and then a six out of the ground in consecutive balls.
But Chameera had the final say when he had Wagner caught at cover for 28 to finish the day with 5-47.
Earlier, the right-armer broke New Zealand's opening stand when he got Latham, on 28, to turn a delivery to leg gully, where Dimuth Karunaratne had just been moved.
Star bat Kane Williamson then departed for one, having ducked under two Chameera bouncers before pulling the third to be caught in the deep.
Guptill, on 50, looked to add to his 10 boundaries with a big shot off spinner Ragana Herath but edged to first slip.
Next to go was Ross Taylor, who copped a sharp, lifting delivery from Chameera and was caught behind for a duck.
Skipper Brendon McCullum had a scare on 17 when caught at fine leg, only for replays to show seamer Nuwan Pradeep overstepping the crease.
But having added a single, McCullum was snared close in off Herath.
All-rounder Mitchell Santner and keeper BJ Watling set about reviving the innings.
They were making steady progress before Santner was given out caught behind for 38 after Sri Lanka called for the DRS.
Watling followed for 28 with New Zealand still 96 behind.
Sri Lanka, resuming in the morning at 264-7 with skipper Angelo Mathews on 63, added 28 before being dismissed.
A single to mid-wicket off the first scoring shot of the day took Mathews to 4000 Test runs.
He reached 77 before becoming swing bowler Tim Southee's third scalp.
Southee, the most consistent of New Zealand's attack, finished with the best figures of 3-63.
