Tim Southee rattled Sri Lanka with two wickets off three balls to put New Zealand in command on the second day of the second and final Test at the P. Sara Oval in Colombo on Monday.
The fast bowler removed opener Tillakaratne Dilshan and Kumar Sangakkara in his second over before Sri Lanka struggled to reach 43-3 in their first innings at stumps in reply to New Zealand's 412.
Southee, who also grabbed four quick wickets in the opening Test in Galle, again rocked the Sri Lankan top order as he bowled Dilshan (five) and then had Sangakkara caught pulling by Trent Boult at fine-leg.
Boult also struck early, having skipper Mahela Jayawardene (four) caught by Kane Williamson at gully to reduce the hosts to 12-3.
Angelo Mathews was unbeaten on 20 with Tharanga Paranavitana nine not out when play was called off due to bad light, with seven overs remaining in the day.
Sri Lanka lead the series 1-0 following their 10-wicket win in the first Test.
New Zealand had been strongly placed at 276-2 before losing their last eight wickets for 136, with left-arm spinner Rangana Herath finishing with 6-103 for his third successive haul of five or more wickets in an innings.
Herath took six of the eight New Zealand wickets that fell in the day, including those of well-set Ross Taylor (142) and Williamson (135), after the tourists had resumed at 223-2.
New Zealand were 300-6 at one stage but Daniel Flynn (53) helped his team cross the 400-mark with his second half-century of the series. He also completed 1,000 Test runs during his 135-ball knock.
Skipper Taylor and Williamson added 262 for the third wicket before they fell in the space of 14 runs, trapped leg-before while attempting to sweep.
Herath, who dismissed debutant Todd Astle (three) and Southee (15) in the afternoon, finished the innings soon after the tea-break with the wickets of Flynn and Boult in the same over.
Taylor, 119 overnight, cracked 11 fours in his 306-ball knock while Williamson's 305-ball innings included 12 boundaries.
The hosts, who took their second wicket in the fourth over on Sunday, continued to struggle until Herath struck in the second hour of the morning.
Williamson, 95 overnight, reached his third Test century in 18 matches with an edged four off paceman Shaminda Eranga.
He also completed 1,000 Test runs a few overs later, fluently driving seamer Nuwan Kulasekara through the covers for a boundary.