San Antonio, Texas (CNN) Democratic Rep. Beto O'Rourke aggressively cast Republican Sen. Ted Cruz as "all talk and no action" during the second -- and potentially final -- debate of the Texas Senate race Tuesday night.

The hour-long debate showcased a major shift in tone for O'Rourke, who rarely says the names of Cruz or President Donald Trump on the campaign trail and has often bypassed his opportunities to take direct shots at Cruz.

The change in approach could be necessary for O'Rourke. A new CNN poll out Tuesday showed Cruz with a 7 percentage point lead -- consistent with other recent surveys that have shown the Republican clearly ahead. O'Rourke had $22.9 million in the bank at the close of the third quarter of 2018, giving him enough money to advertise across the state in the race's final three weeks.

Minutes into the debate, as Cruz accused O'Rourke of supporting a $10-a-barrel tax on oil, the El Paso congressman shot back that Cruz is "dishonest."

"It's why the President called him 'Lying Ted,' and it's why the nickname stuck -- because it's true," he said.

Read More