Colorado Attorney General Phil Weiser has won the state’s Democratic primary for governor, NBC News projects, upsetting Sen. Michael Bennet after a campaign that centered on who would be more effective in standing up to President Donald Trump.
Limited time: Save 25% on NBC News subscription
Get exclusive reporting, live Q&As and ad-free reading.
While both candidates have long been mainstays in Colorado Democratic politics, Weiser entered the race as the underdog. His victory signals that his antiestablishment message broke through in an environment in which Democrats across the country have expressed frustration with the status quo, including in their own party.
With more than 80% of the expected vote counted, Weiser led Bennet by 10 percentage points.
Weiser will now head into the general election to succeed term-limited Democratic Gov. Jared Polis as the front-runner in a state where voters have not elected a Republican governor in more than two decades.
Bennet, who has been in the U.S. Senate for 17 years and ran unsuccessfully for the Democratic presidential nomination in 2020, was seen as a clear favorite when he launched his primary bid for governor last year.
But Weiser, who is in his second term as attorney general, gained traction as the two candidates traded attacks over their anti-Trump credentials in a race in which there was little daylight between them on policy. Both have pushed affordability, housing and environmental issues as top priorities, as well as fighting Trump’s immigration agenda.
Weiser has attacked Bennet for having voted to confirm several of Trump’s Cabinet nominees as a member of the Senate and has cast him as a Washington insider.
“The Democratic Party doesn’t show up, listen and fight,” Weiser said at a debate this month.
During another recent debate, Weiser said that “Congress is not doing its job” and that “Congress should be a check on a lawless, bullying administration. It hasn’t been.” Weiser has also attacked Bennet for missing votes as a senator — though one of his lines on the stump has been “Michael Bennet for Senate, Phil Weiser for governor.”
Meanwhile, Bennet has criticized Weiser for not being more aggressive as the state’s top lawyer in suing the Trump administration.
“The attorney general says he’s really tough but was completely missing in action in Donald Trump’s first term when more than 20 Democratic attorneys general across this country filed a lawsuit against the administration because they were separating kids from their parents at the border,” Bennet said at a debate. “It’s not about the lawsuits he brought. It’s the lawsuits he didn’t bring.”
Bennet has voted in favor of eight of Trump’s Cabinet nominees and against 15 during Trump’s second term. Weiser has filed or joined at least 50 lawsuits against the administration.
Since Jan. 1, 2025, Bennet’s campaign and allied outside groups have outspent the pro-Weiser camp on ads by almost 2-to-1, according to the ad-tracking firm AdImpact. Ads on both sides focus heavily on an anti-Trump message.
“People ask me why I’m running for governor. My answer? Because I’m not willing to allow Donald Trump to define Colorado’s future,” Bennet said in one of his ads.
Weiser said in an ad: “I’ll always stand up to bullies. Especially Donald Trump. Congress isn’t doing it — but I am.”
Before he was elected attorney general in 2018, Weiser was the dean of the University of Colorado Law School.
Bennet was first appointed to the Senate in 2009 to serve out the rest of Sen. Ken Salazar’s term after he was appointed to a position in President Barack Obama’s Cabinet. He was last re-elected in 2022, so he will remain in the Senate until 2029.
In Colorado’s Republican primary for governor, state Sen. Barb Kirkmeyer held a narrow lead over Victor Marx, a Marine veteran and ministry leader, with state Rep. Scott Bottoms running in third place.