Jonny Bairstow struck another brutal century for England as his record-breaking seventh-wicket partnership with debutant Jamie Overton completely turned the game on its head.
England were in serious trouble when the pair came together at 55-6, but they proceeded to share an unbeaten 209-run partnership to push the hosts up to 264-6 at the close of play. The day began with Daryl Mitchell scoring his third hundred of the series as New Zealand posted a first innings total of 329.
Jack Leach picked up 5-100 for England, rewarding Ben Stokes ' show of faith in the spinner. In response, Trent Boult began brilliantly with the new ball for New Zealand, clean bowling England's entire top three.
Tim Southee then removed the in-form Joe Root for just five, before Neil Wagner got in on the act and dismissed Stokes and Ben Foakes. With England on the verge of an embarrassingly low first innings total, Bairstow and Overton began their rescue act.
Bairstow's tenth Test hundred was just as remarkable as his ninth was at Trent Bridge last week, while Overton could not have dreamed for a better debut innings. Having made an unbeaten 89, the England quick will be hoping he can reach his century on day three.
Here are six talking points from the day's play...
Potts gets his reward in controversial fashion
After bowling brilliantly on day one and not getting a single wicket, Potts finally got a reward when he broke Mitchell and Blundell's partnership. The 23-year-old should have had Mitchell out lbw for just eight on day one, but England failed to call for a review.
He also should have had Mitchell caught at slip for 80 on day two, but Foakes dove across Root and got a glove to it, causing Root to spill the chance. Potts' breakthrough finally came when he got Blundell out lbw for 55, but even that was fraught with controversy.
The Decision Review System (DRS) was down at the time due to a power issue and Blundell was unavailable to call for a review. And he may well have earned a reprieve, with replays showing it would have been a close call as to whether the ball would have gone on to hit leg stump.
Mitchell's third hundred
It has been a truly outstanding series for Mitchell and, after scoring his third century in his many Test matches, he has now broken a 73-year-old record. With one innings remaining in the series, Mitchell has scored a total of 482 runs at an average of 120.50.
And he now holds the record for the most runs by a New Zealander in a Test series in England, surpassing Martin Donnelly's 462 runs back in 1949. Mitchell's feat is all the more impressive when you consider Donnelly made those runs in a four match series, while Mitchell has done so in just three.
Former England bowler Jonathan Agnew said on BBC Test Match Special: "What an amazing achievement this is for Daryl Mitchell. Three hundreds in his three Test matches in England. He has dominated this series for New Zealand."
Leach's five-wicket haul
After struggling in the second Test at Trent Bridge, Leach enjoyed some much-needed success at Headingley as he took 5-100. It was Leach's third five-wicket haul for England, but the first time he had ever done so in the first innings of a Test match and his first at home.
The spinner was wholeheartedly backed by Stokes and delivered for his captain, getting through 38.3 overs at an economy rate of 2.59 and ensuring Stokes himself did not need to bowl. And England will be hoping Leach can build on his performance and nail down his place as the first-choice spinner.
"That will give Leach a lot of confidence," former New Zealand captain Jeremy Coney told BBC Test Match Special. "He has had a lot of ill luck over his career so far."
Boult at his best with the new ball
Although New Zealand are yet to win a Test match, Boult has been in very good form this series. The left-armer came straight into the side for the first Test just four days after playing in the IPL final for Rajasthan Royals and is currently the leading wicket taker.
Boult has picked up 15 wickets at 24.46 so far and was at his best with the new ball on day two. In a stunning spell of swing bowling, he picked up 3-43 from eight overs as he clean bowled every member of England's top three for single figure scores.
"Outstanding," former England captain Nasser Hussain told Sky Sports. "That was one of the great new ball spells from Trent Boult, it had pace, accuracy, late swing. Backed up too by Southee, and then by Wagner."
Crawley struggles continue
In that Boult spell, he produced two absolute beauties to dismiss Lees and Pope. However, while it was a great inswinger that accounted for Crawley, the under-pressure opener was at fault for his dismissal.
Having seen the ball nip about for the first six overs, Crawley played a loose drive with his hands away from his body and the ball swung through a big gap between his bat and pad before clattering into the stumps. With just one innings left in the series, Crawley has managed just 62 runs at 12.40.
"A very full delivery, it's nipped off the pitch back into Crawley and actually hit middle and leg stump," former England spinner Alex Hartley told BBC Test Match Special. "It's another good ball from Boult, but one you would expect an opening batter to keep out."
Bairstow and Overton's brutal fightback
After England fell to 55-6, Bairstow and Overton batted brilliantly to rescue their side. Bairstow continued his great form, racking up his second hundred of the series in consecutive innings as he struck 130 not out off just 89 balls.
Overton, meanwhile, enjoyed a debut innings to remember as he reached an unbeaten 89 at the close of play. The Surrey quick has been in good form in the County Championship, where he is averaging 53 with the bat, and he struck an excellent 89 off 106 balls.
Together, the pair put on 204 runs, breaking a 62-year-old record held by Jim Parks and Mike Smith for England's highest-ever seventh wicket partnership.
Check out the latest odds on the Test with Betway