The England all-rounder hit 74 from 46 balls as Yorkshire scored 215-6, their second-highest T20 total after they achieved their highest (223-6) against Durham at Headingley 48 hours earlier.
Willey hit five fours and six sixes against his former club, who were dismissed for 140 to lose by 75 runs.
If Yorkshire win the return match at Wantage Road on Friday, they will make sure of qualifying for the last eight after a rousing recovery that stands at five wins from six games after they had been bottom of the North Group at the halfway stage.
Yorkshire, who climbed to third in the table with this win, were powered by Willey’s first half-century for them in any format, and his third-highest T20 score after innings of 100 and 95 for his former county.
After the home side won the toss on a cloudy, clammy evening, Willey was circumspect at first, his contribution to Yorkshire’s total of 43-1 at the end of the six-over powerplay being eight runs from 12 balls with no boundaries.
Yorkshire had lost Adam Lyth to the first delivery of the second over, the left-hander splicing an attempted pull to mid-on, but Willey was in no mood to stay in his shell as he teed-off from the seventh over onwards.
Seekkuge Prasanna, the Sri Lankan leg-spinner, was launched for four through mid-wicket and then lofted for a leg-side six that landed just below the electronic scoreboard in the North-East Stand.
Willey got even closer to striking that scoreboard when Josh Cobb was brought on at the Kirkstall Lane end for Prasanna, whom Willey then whacked for six, four, six on his way to fifty from 31 balls.
Willey added 106 for the second-wicket inside 11 overs with Alex Lees, who chipped in with 35 from 27 including three successive boundaries off Richard Gleeson.
Lees eventually fell at point, where he was acrobatically caught by a flying Richard Levi, who injured his shoulder in the process and left the field in a sling.
Willey clubbed both of Steven Crook and former Yorkshire pace bowler Moin Ashraf for six over mid-wicket before perishing as he tried to clear that boundary again off Ashraf, leaving Yorkshire 137-3 in the 14th over.
Jack Leaning hammered 30 from 14 balls, including two sixes, before holing out to long-on, Yorkshire losing two wickets in the last over when Travis Head was bowled by Ashraf and Liam Plunkett run-out.
Tim Bresnan played a gem at the end, scoring an unbeaten 26 from nine deliveries, three of which were sent sailing over the rope.
Yorkshire struck 28 boundaries – only three fewer than they managed on Wednesday night –having hitherto struggled in that facet of the game.
Ashraf took 2-42 from four overs in a respectable return to his old stomping ground.
Northants lost Josh Cobb in the second over of their reply, caught and bowled by Bresnan, who was then biffed for five fours in his second over by Ben Duckett.
Plunkett struck with his third delivery when Adam Rossington picked out Willey at mid-on, Plunkett’s next ball drawing a tame drive from Alex Wakely to Lyth at cover.
It left Northants 47-3 in the fifth over, which became 69-3 at the end of the powerplay - 26 more runs than Yorkshire had at that stage.
But wickets continued to fall as Duckett, moments after reaching a 21-ball half-century, was stumped off Adil Rashid, who had hot-footed it back across the Pennines after England left him out of the Old Trafford Test.
More damage followed in Rashid’s next over as Northants tumbled into trouble from 103-4 to 105-6.
Prasanna was run-out and Rory Kleinveldt caught by action man Willey at deep mid-wicket, the visitors’ cause becoming hopeless when Azeem Rafiq trapped Crook lbw for 43 from 26.
Will Rhodes had a swinging Gleeson caught behind, and Rafiq bowled White to round things off, with the injured Levi unable to bat.
Confident and revitalised, Yorkshire suddenly have the air of a side that could take some stopping.