England snared three quick wickets with spin but New Zealand's batters frustrated the tourists with their resistance on day three of the second Test in Wellington on Sunday after Ben Stokes enforced the follow-on.
New Zealand were 202 for three in their second innings at stumps, needing only 24 runs to make England bat again at the Basin Reserve.
Kane Williamson (25 not out) and Henry Nicholls (18 not out) held firm after Jack Leach triggered a batting collapse that netted 3-18.
New Zealand resumed on 128 for no loss in their second innings after tea, with openers Tom Latham and Devon Conway pushing their partnership to 149 runs before Leach made the breakthrough.
The spinner found a thick inside edge which careened off Conway's pad and looped over to short leg, where Ollie Pope dived forward to take the catch and remove the batter for 61.
The wicket shifted the momentum back to England, with Latham soon out lbw for 83 trying to sweep Joe Root.
Number four Will Young, selected for the match to add depth to the hosts' batting, was bowled for eight by Leach, having managed two in the first innings.
Young's wicket left New Zealand 167 for three, still needing 59 runs to make England bat again.
Williamson and Nicholls rode their luck through the final hour but strode off unbeaten, with New Zealand having some hope of setting England a proper fourth innings chase.
New Zealand were earlier bowled out in the morning session for 209 in reply to England's declared first innings total of 435 for eight, the Black Caps falling 27 runs short of avoiding the follow-on.
England skipper Stokes had little hesitation sending the hosts back in to bat on an overcast morning but Latham and Conway survived 19 watchful overs to lunch and then the entire middle session to tea.
Latham brought up his 5,000th test run before tea with a single off James Anderson.
New Zealand started the day on 138 for seven in their first innings, still needing 98 runs to avoid the follow-on.
They briefly held hope of mowing the runs down as tail-ender captain Tim Southee went on a six-hitting spree in an entertaining knock of 73 off 49 balls.
Southee smashed Leach for three sixes in an over, the second bringing up his fifty from 39 deliveries and sending the ball onto scaffolding behind the fence at long-on.
Leach dropped Southee when he slogged Stuart Broad to just in front of the fine leg rope when on 71.
But the spinner's anguish lasted only one ball as Southee was caught by Zak Crawley at midwicket after another top edge.
That ended an excellent 98-run partnership with wicketkeeper Tom Blundell and the match quickly turned.
Blundell whacked Broad straight to Leach at mid-on to be out for 38 before the England paceman wrapped up the innings by dismissing a slogging Matt Henry for six.
Broad finished with innings figures of 4-61, with Anderson (3-37) and Leach (3-80) claiming three wickets apiece.