Donald Trump has gotten very used to winning recently, after racking up three straight primary and caucus wins. He’s even promised to win so much that Americans will get sick of winning.

But he didn’t get a victory in Houston on Thursday.

It was Trump’s worst debate of the campaign, and the defeat came largely at the hands of Marco Rubio, who hit Trump early and often. The climactic moment arrived during a discussion of health insurance. Every candidate has promised to repeal and replace Obamacare, but with what? Trump’s answer was that he’d allow the sale of insurance across state lines. Rubio pressed him: Is that all you’ve got? When Trump tried to slap back, Rubio was ready.

“He’s repeating himself!” Rubio exclaimed with a grin, echoing the very attack Chris Christie used so effectively against him just a few weeks ago. “I’m not repeating myself. I’m not repeating myself,” Trump insisted, but he was practically drowned out by the huge round of applause sweeping the hall.

It’s a wonder no one thought to accuse Trump of repetition before. As Rubio noted, Trump repeats a familiar set of slogans over and over: Make America great again. Build the wall. Win. Stop losing at trade. Force Trump away from those mantras, and he tends to get lost and confused. Of course, it’s also a wonder that no one has attacked Trump so directly before in debates, and especially that Rubio hasn’t done so. Right from the start on Thursday night, though, the Florida senator unloaded line after line of opposition research. He noted that Trump had paid $1 million to settle a court case over use of Polish illegal-immigrant labor. He pointed out that Trump is being sued for fraud over the so-called Trump University, a glorified real-estate seminar. He said that without his father’s inheritance, Trump would be "selling watches in Manhattan."

It was an incredible barrage. Only Jeb Bush had tried anything like it, and Trump easily talked over him. Unlike Bush, Rubio kept hammering, interrupting Trump and getting under his skin. And unlike Bush, who seemed deeply unhappy attacking, Rubio seemed to be having a blast slashing Trump. It all raised a rather uncomfortable question: What if Rubio had gone after Trump earlier, before Trump became the clear front-runner with Super Tuesday just days away?

Those weren’t Trump’s only bad moments. On Wednesday, Mitt Romney—remember him?—demanded that Trump release his taxes. Asked about that Thursday, Trump responded with an amazing unforced error, saying that he couldn’t yet release them because he was being audited by the IRS, adding that he’s regularly audited. It’s a fascinating admission: Why is Trump regularly audited? Is there some reason the IRS has questions about his returns? Trump was even made to look foolish by lead moderator Wolf Blitzer, who otherwise repeatedly lost control of the debate. Blitzer asked how Trump would cut the federal budget, and Trump mentioned eliminating the Department of Education and the Common Core, cutting environmental regulation, and eliminating waste, fraud, and abuse. Blitzer quickly noted that this would barely make any impact at all on federal spending.

Most of the debate was a three-way melee among Trump, Rubio, and Cruz. Trump had a few good one-liners. "I'm the only one on the stage who's hired people, period,” Trump sniped when Rubio brought up the Polish immigrant labor. “You don’t know a thing about business.” But Rubio generally got the better of Trump, while Trump had only retread insults to lob back. He kept trying to bring up Rubio’s New Hampshire meltdown, but it was a different Rubio on stage in Houston: agile, athletic, ready to improvise. Trump never saw it coming. He was generally supine and—could it be?—low energy. (Other Rubio lines were a bit less effective. He accused Trump of approaching the Israeli-Palestinian conflict as just another transaction: “The Palestinians are not a real-estate deal." But as many a wag pointed out, resolving the conflict sort of is a real-estate deal: After all, the basic dispute is over land.)

Trump did a little better against Cruz. As he has before, Trump assailed Cruz as a liar and harped on how little Cruz’s colleagues in the Senate like him. When Hugh Hewitt, one of the moderators, offered Cruz a chance to say that Trump couldn’t be trusted to nominate Supreme Court justices, Cruz mostly passed on the attack. Yet Trump happily turned around and slammed Cruz for his advocacy for the nomination of Chief Justice John Roberts, whom each called a disaster as a justice.

Rubio didn’t have a perfect night. Early on, moderator María Celeste Arrarás scored a direct hit by asking him about a statement he’d made, in Spanish, on Telemundo, where he said that DACA, President Obama’s plan to allow “DREAMers”—undocumented immigrants brought into the country as children—to stay in the U.S. must end, but that it would be unfair to end it immediately. On Thursday, he insisted he would end it on his first day in office. It was hard not to conclude that Rubio is either saying different things to different audiences or has changed his position.

This debate, like many others, remained sadly deficient on tough policy questions and follow-ups. Blitzer started off the night asking about vows by Trump and Cruz to deport all the immigrants who are illegally in the country, but he never asked either how they would execute that promise, which is uniformly considered fantasy by experts. While Rubio was right to call out Trump for having no health-care plan beyond allowing interstate insurance, there was precious little detail from any other candidate on stage, either. A lengthy discussion of “religious liberty,” mostly served to show the narrow and euphemistic way the term is deployed in Republican discourse, where it mostly applies to Christians: The candidates discussed whether bakers should have to provide cakes to gay weddings, but there was no discussion of Trump’s call to bar Muslim refugees, and perhaps other Muslims, from entering the country.

And, oh yeah, there were those two other guys on stage: John Kasich and Ben Carson. Kasich got the most attention of the two of them, occasionally jutting in to deliver a long, wonky answer, but he was largely shut out of the Trump-Rubio-Cruz fight, which isn’t a good sign for his chances going forward. Carson, never a strong debater, was a particularly spectral presence Thursday, hardly ever getting a word in edgewise and at one point begging to be attacked so he could talk. Carson did, however, manage to coin an incredible phrase when describing his litmus test for Supreme Court nominees: “The fruit salad of their life is what I will look at.” (Your guess is as good as anyone else’s.)

Will Trump’s terrible night make any difference? One rule of thumb so far has been that no matter how Trump performs during these debates, it doesn’t seem to hurt him. In fact, he’s hardly ever done well, though never this poorly. Maybe the concentrated heat of Rubio and Cruz will finally take Trump down a notch. That would be a great relief to the Republican Party establishment, but it would also be a serious indictment. If one debate is all it took, why didn’t Rubio and the rest of the party have the guts to take Trump out earlier, before he did major damage to the Republican brand?

Or maybe Trump will just keep rolling and rack up a series of victories on Tuesday. Stranger things have happened.

—David Graham