Trent Boult produced a devastating new-ball spell to help New Zealand reduce Sri Lanka to 38-3 at lunch on day two of the First Test in Christchurch.
The Black Caps had earlier managed to add only 12 to their overnight score as they were bowled out for 441, within which Brendon McCullum made a record-breaking 195.
Angelo Mathews had Tim Southee caught for a duck before Suranga Lakmal picked up the wickets of Neil Wagner and Boult cheaply.
Boult soon had the ball in his own hand and took only two deliveries to trap Dimuth Karunaratne lbw for his 100th Test wicket, and he then dismissed Kaushal Silva by the same method for just four.
Even Kumar Sangakarra had no answer to the left-arm paceman as he chipped off for six to leave Sri Lanka 15-3, but Mathews (15 not out) and Lahiru Thirimanne (11*) saw them through to the interval.