How did Phil Weiser pull off the seismic, world-changing upset of Michael Bennet in the Democratic primary for governor?
Weiser didn’t just win. He came from nowhere in the polls to knock off a three-term senator who had never lost a race in Colorado.
The easy answer is that Weiser was both lucky and good — more good than lucky, it turned out — and his victory over Bennet, while shocking to the Colorado Democratic political establishment, now feels like it was almost inevitable.
It was inevitable/not inevitable in nearly the same way — but not quite — that 29-year-old democratic socialist Melat Kiros beating 29-year incumbent U.S. Rep. Diana DeGette in the 1st Congressional District feels. That will be the national story — that Colorado has joined New York in beating a progressive Democrat with a self-proclaimed socialist. And in the state legislative races, we were seeing the same thing — progressives taking down moderates.
If you want to know how Republicans took that news, you might ask Lauren Boebert, who in an interview with 9News’ Kyle Clark immediately tabbed Kiros as a communist. What else?
Things have definitely changed in the state — even when it seems like they haven’t. John Hickenlooper, the ultimate establishment player in Colorado, did win a return to the Senate, but his race against an overmatched and underfunded progressive in Julie Gonzales was not quite the blowout we expected.
If you’ll remember, Bennet came to politics when Hickenlooper did, working as his chief of staff. They weren’t as close as you might think, but they were definitely a tandem. I would never have guessed that Hick would outlast him.

Want early access to
Mike’s columns?
Subscribe to get an
exclusive first look at
his columns twice a week.
Something’s happening here. Sing it with me: But what it is ain’t exactly clear.
Colorado is definitely a bright blue state, but it’s somehow, at the same time, a moderately blue state. Winning politicians in Colorado run to the middle. When Republicans lost the middle and then went full-on MAGA, they lost the state and now seem in no position to (ever?) find their way back.
Both races — the Dem gov race and the 1st CD race — were less about winning the middle than about being fighters. Kiros was fighting against the weak-kneed Democratic establishment in Washington. She was a comer. DeGette was a stayer, who had stuck around D.C. seemingly forever, rarely making headlines. She had the safest of safe seats. Or so it always seemed.
Many Democrats have been looking at DeGette’s seat for a while. Kiros, a complete unknown, got there first.
The governor’s race was different, but in some ways essentially the same.
Fightin’ Phil’s campaign was about bringing the fight to Donald Trump, an obvious and odious target. I wrote from the beginning of the race that the person who could position himself as being better able to protect Colorado from Trump would win.
Bennet raged against Trump and blamed Democrats — including Joe Biden — for Trump’s victory in 2024. He based his campaign on the fact that Colorado’s future is uncertain and that we are in so many ways failing our children.
We have to do better, he said, much better. He was right — and Weiser didn’t disagree — but that apparently wasn’t enough to get Bennet the victory.
The timing for Weiser was perfect. He was the attorney general bringing the fight, with every lawsuit he filed, directly to Trump, who was simultaneously bringing the fight directly to Colorado over the fact/petty grievance that his supporter, election grifter Tina Peters, had been tossed into prison for tampering with voting machines to, uh, prove that the unrigged 2020 presidential election was, uh, rigged. (Uh, it wasn’t.)
Weiser wasn’t acting much differently than most other Democratic AGs. They were all in the fight against Trump. But Weiser not only sold his fight better than most — he must be a good politician, right? — he was able to sell it at the same time that a passive Gov. Jared Polis didn’t seem to want to fight Trump at all.
With Polis mostly out of the picture, that left Weiser able to make himself Trump’s clear opponent.
Yes, lucky in his timing, but very good in his campaign.
Weiser and Bennet didn’t fight much over issues. Before Bennet entered the governor’s race, I doubt they ever fought at all. They agreed on most of the many problems facing Colorado, and their plans to make things better differed mostly in the details.
But Bennet, unlike Weiser, was stuck with his party. While neither Bennet nor Weiser was an incumbent in this race — Polis being term-limited — Bennet could never shake being the establishment candidate. He might as well have been the incumbent.
He voted to confirm several Trump cabinet appointees, and his explanation — that voting against a Trump appointee is the easiest thing in the world for a Democratic politician to do, and that his votes helped Colorado fight, say, wildfires — didn’t seem to sway many voters. Meanwhile, Weiser made Bennet’s votes a campaign issue from the first day. It stuck.
And when Wieser, an astonishingly successful small-contributions fundraiser, attacked Bennet for his Super PAC’s dark-money, the contrast couldn’t have benefited Weiser more. When Bennet chose to say that if he became governor, he would pick his own successor in the Senate, many progressives were outraged.
In another place, in another time, being a Dem politician who had never lost a race in Colorado might have been an advantage. I certainly thought it would be. But not this time.
Colorado Democrats — like Democrats everywhere — are sick of what’s going on in Washington, and Bennet, the three-term U.S. senator, couldn’t convince Colorado Dems that his party’s failure in the Senate meant that he would be more successful as governor. And when the race turned nasty, that turned out to benefit Weiser, too, especially once billionaire Michael Bloomberg became a factor in the race.
What is obvious now is that it was difficult for Bennet to make the case that he could fight Trump better as a governor. It was difficult, particularly at first, for Bennet to even explain why he was running for governor. The longer that took, the more it benefited Weiser, whose campaign didn’t give Bennet any space.
The funny thing is, the longer Bennet was in the race, the more he believed that it was the right place for him to be — just as, long ago, when then-Gov. Bill Ritter appointed Bennet from nowhere to take Ken Salazar’s Senate seat, he thought, when many didn’t, he would be good at the job.
I guess — as Weiser predicted in the beginning — Bennet will now go back to the Senate and Weiser will almost certainly become the next governor.
I don’t know what Bennet does after his term ends. I doubt he’ll run again in 2028. I don’t see how he could. Maybe there’s another, better way to spend his time. He’s already been a lifetime politician.
Weiser is still a question mark. Even though he was an AG for eight years, that doesn’t necessarily translate into successfully leading a state. But one thing we can be sure of is that even those Democratic politicians who supported Bennet — particularly those in the legislature — can’t wait for Weiser to take office and for Polis to leave.
Something is happening here. Eventually, we might even know exactly what it is.

Mike Littwin has been a columnist for too many years to count. He has covered Dr. J, four presidential inaugurations, six national conventions and countless brain-numbing speeches in the New Hampshire and Iowa snow. Sign up for Mike’s newsletter.
The Colorado Sun is a nonpartisan news organization, and the opinions of columnists and editorial writers do not reflect the opinions of the newsroom. Read our ethics policy for more on The Sun’s opinion policy. Learn how to submit a column. Reach the opinion editor at opinion@coloradosun.com.
Follow Colorado Sun Opinion on Facebook.
