
New Zealand's bowlers removed openers Alastair Cook, Andrew Strauss and dangerman Kevin Pietersen in the space of 31 runs and 13 overs.
Captain Michael Vaughan and Ian Bell took the hosts to lunch on 160 for three in reply to New Zealand's first innings of 277 as a draw continued to appear the most likely result.
England scored 71 for the loss of three wickets off 26.4 overs in the session under welcome sunshine at Lord's after just 8.5 overs were possible on day three.
It was looking ominous for New Zealand as Cook and Strauss put on an opening partnership of 121, but an accurate spell from paceman Chris Martin and early breakthroughs from Jacob Oram and captain Daniel Vettori swung the momentum.
Martin broke the partnership in the 40th over of the innings when he removed Cook for 61 after England resumed on 89 without loss.
He got enough movement away from the left-hander to square him up and find a thick edge which a tumbling wicketkeeper Brendon McCullum gladly accepted.
Cook, who notched his 10th test half-century, batted 183 minutes and faced 109 deliveries.
Martin, the most-used New Zealand bowler, took one for 20 off his eight-over spell to end the session with figures of one for 56 off 21.
Strauss brought up his 12th test half-century soon afterwards but the buildup of New Zealand pressure took its toll when Oram trapped him leg before wicket, ending his 234-minute innings of 61.
Vettori introduced himself in the 48th over, and in his fourth over earned the prized scalp of Pietersen for three.
Pietersen pushed forward at a straight Vettori delivery and umpire Steve Bucknor upheld the loud appeal.
Vettori convinced umpires Bucknor and Simon Taufel to change the ball in the day's second over after the pacemen had struggled to generate swing.