Texas Sen. Ted Cruz (R) and his Democratic challenger Rep. Beto O’Rourke just had what was likely to be their last face-to-face debate before the November 6 midterm elections.

As they sparred over Medicare-for-all, the GOP tax cuts, and border security, both candidates continued to try to appeal to their bases in a race that has captured national attention and money and built up long-held Democratic hopes of turning Texas blue.

Cruz argued that O’Rourke is dangerously liberal, while O’Rourke called Cruz out-of-step and beholden to Republican donors.

Cruz emphasized that O’Rourke is too “radical” for Texas — trying to paint him as more to the left than progressive Sens. Elizabeth Warren (D-MA) and Bernie Sanders (I-VT).

O’Rourke, on the other hand, repeatedly called Cruz a liar and accused him of taking votes to please Republican donors rather than working for the people of Texas. He even adopted a nickname from President Trump: “Sen. Cruz is not going to be honest with you,” O’Rourke said at one point. “He’s dishonest, that’s why the president called him ‘lying Ted,’ and that’s why the nickname stuck, it’s true.”

O’Rourke raised eye-popping $38 million in just three months, the most of any Senate candidate. There is undeniable hype surrounding his candidacy. But he is still the underdog in deep-red Texas. Even though some polling has shown the race in close single digits, Cruz has been in the lead in every single poll and is currently leading by 7 points, according to RealClearPolitics.

O’Rourke still has another televised town hall with CNN that Cruz has said he won’t attend, so Tuesday night’s debate was the last chance for both candidates to be on stage and make their closing arguments together.

Here are three key moments.

1) Cruz is challenged on his vote for GOP tax cuts — and O’Rourke paints him as corrupt

The sweeping GOP tax cuts became a moment of contention in the Texas Senate debate when Cruz was asked by moderator Jason Whitely to square his longtime stance to not increase the national deficit with voting for a GOP tax bill that is projected to increase the national deficit by more than $1 trillion.

Over his career in the Senate, Cruz was a noted critic of government spending under the Obama administration, calling it “immoral” spending that would add to the national debt. But when it came for Republicans running deficits, Cruz went on the defense.

“I’m proud to have supported the tax cut, the tax cut is producing enormous benefits for the state of Texas and for the country,” Cruz responded. Soon after, Whitely challenged Cruz by asking about the projection of the Congressional Budget Office, Joint Committee on Taxation, and other nonpartisan groups that the tax cut will in fact add $1.6 trillion to the deficit over the next 10 years.

“No it wouldn’t — that projection is wrong,” Cruz said. “The reason we have deficit and debt is not because we cut taxes and grow the economy. We need to control the out-of-control spending by cutting things like socialized medicine.”

O’Rourke used the opportunity to paint Cruz as corrupt, saying he voted for tax cuts and other Republican bills at the direction of donors and PACs — and highlighting his own pledge not to take PAC money.

“Follow the money,” O’Rourke said. “Those tax cuts will disproportionately flow to corporations who are already sitting on record piles of cash in a country that is riven with income inequality unseen seen since the last Gilded Age.”

2) A race of “extremes”

O’Rourke is running as a progressive candidate in Texas, and Cruz seized on that. Cruz wanted voters who watched Tuesday’s debate to believe O’Rourke’s vision for America was one with socialized medicine bogged down by long wait times, extremely high costs for the government, and open borders that would lead to immigrants streaming into the US.

Cruz’s stance on immigration is largely focused on securing the border. He’s interested in expanding H1-B visas for skilled immigrants but railed against amnesty for immigrants who arrived in the US illegally. O’Rourke, on the other hand, wants to pass the DREAM Act and provide a path to citizenship for DREAMers, the young unauthorized immigrants who were brought to the US illegally as children.

When it came to the immigration issue, Cruz played to fears about crime south of the border, saying O’Rourke opposed even the most basic border security.

“Congressman O’Rourke not only opposes a wall ... he wants to tear down the ones we have,” Cruz said, noting the wall between O’Rourke’s hometown of El Paso, Texas, and neighboring Juarez, Mexico. “There’s a wall there, that wall is one of the tools you use to protect us.”

O’Rourke shot back, saying the immigration policy he supports is about more than border walls — including a pathway to citizenship DREAMers.

“I care about the safety of every single person in the state of Texas,” O’Rourke said. “No wall is going to solve legitimate security concerns, but smart policy will.”

Throughout the debate, Cruz called O’Rourke “extreme,” saying he was to the left of Bernie Sanders. There’s a strategy to this; as Texas political scientist James Henson told Vox’s Tara Golshan, Cruz is trying to define O’Rourke negatively because his name ID is still relatively low compared to the Republican senators.

One of the repeated attacks Cruz has lobbed at O’Rourke is that he would be weak on crime and not support law enforcement. That was something O’Rourke seemed eager to address on Tuesday; he highlighted his support for local law enforcement multiple times.

3) The debate showed two candidates still trying to appeal to the Democratic and Republican bases

Fundamentally, O’Rourke and Cruz’s messaging — and the voters they’re trying to appeal to — hasn’t really changed since they first started campaigning. Cruz is very much appealing to the state’s conservative base by attempting to paint his opponent as somewhat of a left-wing boogeyman. And he has good reason to: Older, whiter voters in Texas are more likely to turn out, and more likely to vote Republican.

So, predictably, Cruz hit at that message again on Tuesday. As the men debated health care and O’Rourke’s support for Medicare-for-all, Cruz suggested that O’Rourke wanted to add illegal immigrants to the program, thus taking it away from senior citizens.

“The cost would be immense,” Cruz said. “He wants to put everyone who hasn’t paid into Medicare on Medicare. That would bankrupt Medicare.”

O’Rourke is making a noticeable effort to reach out to the state’s nonwhite populations — notably African Americans and Latinos — by talking about police brutality, race relations, and the importance of immigrants in the United States. It’s something he brought up in the first Senate debate in September but didn’t mention as much on Tuesday night. Instead, O’Rourke focused more on Latino voters, reiterating his support for the DREAM Act.

O’Rourke is undoubtedly trying the riskier tactic to pull off a win in Texas, as nonwhite voters — especially Latino voters — tend to have much lower voter turnout rates. Whether they do come out for O’Rourke in November will tell us whether something big has changed in the Lone Star State — or not.