The England all-rounder smashed 70 from 38 balls with four fours and six sixes as Yorkshire scored 179-5 after deciding to bat.
Tim Bresnan and Azeem Rafiq each took three wickets as Birmingham made 150 in reply, Keith Barker top-scoring with 35.
“It was a great team performance,” said Willey.
“I managed to get hold of a few and clear the ropes, and hopefully we can take this momentum forward.”
Willey, whose previous highest score in any first team cricket this season was 42, lit up a warm and cloudy evening with customary flair.
He never looked back after clubbing his second ball to the cover boundary off Boyd Rankin, having arrived at the crease in the third over when Adam Lyth slapped the same bowler to cover fielder Sam Hain.
The early fireworks were supplied by Tom Kohler-Cadmore, who struck 27 from 16 balls, including three sixes.
Kohler-Cadmore twice pulled Rankin into the West Stand and hammered spinner Jeetan Patel for six over mid-wicket towards the East Stand, the ball travelling so high that it was just as well that no aircraft was passing overhead.
Kohler-Cadmore, who is unavailable for tomorrow’s T20 game against Worcestershire at Headingley (2.30pm start) as part of the deal that saw him leave New Road last month, had scored 5, 0 and 12 on his first three outings in this year’s tournament.
This was more encouraging from the 22-year-old right-hander, who treated the 8,110 crowd to flashes of his firepower before he was second out with the total on 41 in the fifth over, edging to the wicketkeeper after throwing the bat at Rankin as he tried to smash him back down the ground.
On a good pitch, Willey greeted the arrival of former Yorkshire pace bowler Oliver Hannon-Dalby by depositing his first delivery over mid-wicket into the West Stand before guiding his next ball to the cover boundary.
In the same over, Willey pulled Hannon-Dalby out of the ground over the West Stand and also launched him for four over long-off, Yorkshire reaching 62-2 at the end of the powerplay.
As he grew in confidence and stature, Willey helped Grant Elliott for six over long leg and then thumped his next ball for a maximum over long-off.
His fifth six saw Patel dispatched high over mid-wicket and his sixth – over long-off off Barker – took him to a 27-ball fifty.
At 95-2 at halfway, Yorkshire were eyeing a total in excess of 200, but Birmingham pegged them back, Colin de Grandhomme keeping things tight from the Kirkstall Lane end.
Willey added 83 for third-wicket with Shaun Marsh in 8.1 overs before running himself out off a free-hit.
The left-hander turned a ball from Rankin around the corner and was beaten by a fast return to the keeper from de Grandhomme at long-leg as he tried for a second run.
Yorkshire fell to 129-4 in the 14th when Peter Handscomb swept Patel to backward square-leg, and then to 154-5 in the 18th when Marsh pulled Rankin to deep mid-wicket after scoring 30 from 31.
Jack Leaning injected late impetus, as he so often does, striking an unbeaten 32 from 22 balls with two sixes and one four.
Rankin emerged with the best figures of 3-39, and Hannon-Dalby with the worst of 0-35 from two overs.
Birmingham’s reply was in early distress when Bresnan struck in each of his opening two overs.
The Yorkshire captain caught Hain off his own bowling and then had Ian Bell taken at mid-on by Ben Coad, the former England man getting plenty of elevation on the shot but not enough distance.
Tim Ambrose tamely pulled Willey to Adil Rashid at mid-wicket as the visitors slipped to 31-3 in the fifth, and Rashid left them 49-4 in the seventh when he trapped Elliott lbw.
It became 49-5 when Will Porterfield was run-out by Marsh from close in on the off-side after a mix-up with Aaron Thomason, who had tried to steal a single.
As Birmingham’s cause became increasingly desperate, de Grandhomme skied Rafiq to Coad at deep point (58-6).
Thomason and Barker kept them in the hunt, sharing 64 inside eight overs before Rafiq got rid of both in the space of three balls in his final over, the 16th of the innings.
Barker was well caught by a diving Kohler-Cadmore at wide long-on after scoring 35 from 23, and Thomason was stumped for 31 off 29 as the Bears dropped to 122-8.
Steve Patterson bowled Patel around his legs, and Bresnan ended the game by bowling Rankin.