Northampton-born Willey’s unbeaten 41 from number 10 in Yorkshire’s order was their top score of a second innings which recovered from 86 for six to 247, setting a 220 target at tea.
The County then closed on 94 for four, with 17.5 overs lost to bad light from 6pm. They require 126 more.
Yorkshire are chasing a third LV= Insurance County Championship win in four games this summer, while Northants have not won a four-day game on this ground since 1990.
Visiting South African overseas seamer Wayne Parnell claimed five for 79 to finish with 10 for 143 - only the 31-year-old’s second 10-wicket career match haul
But, after taking four wickets in the morning session, Northants will be frustrated at letting dominance slip.
Yorkshire, 43 for three from 20 overs overnight and leading by 15, fell to 145 for seven at lunch, including Parnell getting key man Gary Ballance caught at first slip for 16.
Parnell also removed Harry Brook for 39 at the start of the afternoon before the tide turned back the way of the hosts.
Despite their morning wickets, Northants conceded too many boundaries. And with Willey at the crease, that did not change in the afternoon.
An England all-rounder who came through the ranks at Wantage Road and won the Vitality Blast there in 2013, he shared 65 for the ninth wicket with Jordan Thompson and 33 for the 10th with Duanne Olivier.
Thompson made an important 37 before being caught behind off Simon Kerrigan’s left-arm spin, leaving Yorkshire at 214 for nine in the 72nd over.
That was when Willey really threw caution to the wind, hoisting three leg side sixes off Gareth Berg in the 77th over to move to 40 and the lead to 214.
Parnell wrapped up the innings by bowling Olivier to signal an early tea before Thompson further strengthened Yorkshire’s position with two new ball scalps - Ben Curran and Charlie Thurston both lbw - as Northants fell to 17 for two in the fourth over.
Willey later had Rob Keogh caught at first slip and ran out Ricardo Vasconcelos for 41 with a direct hit at the non-striker’s end from mid-wicket, leaving the score at 74 for four.
Luke Procter, unbeaten on 20, and Saif Zaib, who hit a half century in the first innings, will push the visiting cause at the start of day four.
Yorkshre v Northants, Headingley
LV= Insurance County Championship, Group 3
Day three of four
Yorkshire first innings: 206 all out (Parnell 5-64, Berg 3-32, Sanderson 2-48)
Northants first innings: 234 all out ( Zaib 55, Taylor 50, Vasconcelos 47)
Yorkshire second innings: 247 all out (Willey 41no, Parnell 5-79)
Northants second innings: 94-4 (Vasconcelos 41)