CNN  — 

Sen. Ted Cruz will defeat Democratic Rep. Beto O’Rourke in the race for Senate in Texas, CNN projects, holding off the progressive online fundraising sensation and leaving Democrats who hoped to snap a 24-year statewide losing streak disappointed again.

Cruz made his name in Washington as a right-wing crusader against Obamacare. That elevated him with the GOP’s base during his failed 2016 bid for the party’s presidential nomination – but also made him a top Democratic target.

Another reason progressive activists were deeply invested in the race: As more Latinos register to vote, Democrats believe the state that hasn’t elected a member of their party in 24 years will move leftward and eventually become competitive. It’s part of a Sun Belt shift that the left hopes could also remake the political landscapes of Georgia and Arizona and eventually lock in Colorado, New Mexico and Nevada as solidly Democratic.

The Texas Senate race’s flashpoints were often over cultural issues, particularly the National Anthem.

An O’Rourke speech defending NFL players who kneel to protest during the anthem and comparing them to Civil Rights Movement protesters went viral in August, leading Cruz to respond with a video featuring a double amputee.

“I gave two legs for this country. I’m not able to stand,” the veteran, Tim Lee, says in the video. “But I sure expect you to stand for me when the national anthem is being played.”

Cruz also accused O’Rourke of supporting a $10-a-barrel tax on oil – a policy that would be sharply felt in Texas, where the energy industry is an economic force. Cruz was criticizing O’Rourke’s vote against a GOP resolution rejecting such a proposal when former President Barack Obama offered it.

The attack led O’Rourke to call Cruz “dishonest” – and to pick up on President Donald Trump’s 2016 presidential campaign nickname for Cruz – in their second debate.

“It’s why the President called him ‘Lying Ted,’ and it’s why the nickname stuck – because it’s true,” he said.

O’Rourke later backtracked, saying at a CNN town hall that it wasn’t “the way I want to be talking in this campaign.”

“It’s not something that I feel totally comfortable with, and perhaps in the heat of the moment I took a step too far,” he said.

That didn’t stop Trump from unloading on O’Rourke days later when he visited Houston to campaign for Cruz, his former rival. Trump called O’Rourke “a radical, open borders left-winger” at a rally. He also tweeted that O’Rourke is a “flake.”