Doug Bracewell and Trent Boult took two wickets apiece as New Zealand dominated the opening session to leave Sri Lanka 280 runs adrift on day five of the second Test.
Dimuth Karunaratne was the first casualty at stumps on day four in Wellington, but four more have followed as the hosts look for a 2-0 lead in the series.
The Kiwis got off to an excellent start as Boult removed Dhammika Prasad (6), before the left-hander dismissed Kumar Sangakkara (5) a short time later.
Bracewell got in on the action, too, removing Kaushal Silva (50), while Angelo Matthews (8) soon followed just before lunch, with Kane Williamson thwarting the Sri Lanka captain with a reflex catch at gully.
Sri Lanka need 280 runs with five wickets remaining.