Fast bowlers Trent Boult and Tim Southee took two wickets apiece to put Sri Lanka on the back foot on a rain-curtailed second day of the second Test as the hosts reached 144/6 before rain caused early stumps Friday.
Less than 30 overs of play was possible after a late start as rain arrived minutes before lunch and disrupted further play.
Sri Lanka resumed day two on 85/2 after a rain-hit opening day but New Zealand's seamers used the overcast conditions at P. Sara Oval to good effect to pluck four wickets during the session.
Boult struck twice in the 42nd over, having Angelo Mathews (2) dismissed with the first ball when he attempted a pull shot and gloved a catch to wicketkeeper BJ Watling. In the fifth delivery, Kusal Perera (0) was trapped lbw leaving Sri Lanka at 93/4.
Southee joined the fray by taking the price wicket of in-form captain Dimuth Karunaratne, who was caught behind for 65 runs. Karunaratne carried his good form from the first Test in which he scored a century, and faced 165 deliveries and hit six boundaries.
Niroshan Dickwella also departed without scoring, caught behind by Watling off Southee.
Boult had two wickets for 33 runs in 14 overs while Southee returned two for 40 in 20 overs. Seamer Collin de Grandhomme and spinner William Somerville also took a wicket each.
Opener Lahiru Thirimanne (2) and Kusal Mendis (32) were out on Thursday.
Sri Lanka looks for a sweep in the two-match series having won the first Test in Galle by six wickets.
New Zealand must win the game to square the series and collect points to improve on the World Test Championship ratings.