The penultimate Republican debate prior to the Iowa caucuses contained plenty of fireworks, a plethora of great moments, and Governor John Kasich (R-OH) air chopping pineapples. There were winners, there were losers, and there were also-rans. It was, in short, the most telling debate thus far in the campaign.

Without further ado, here are my debate grades. Remember, there are no pluses and minuses for purposes of clarity. And I’m grading based on how much I think this debate will help or hurt the various candidates. Here we go:

Donald Trump: B. This was, in some ways, Trump’s best debate. On an objective level, he had some terrific, heartfelt moments – two in particular. His first came when he was asked about South Carolina Governor Nikki Haley’s critique of him as too angry. He said, quite rightly, that he was angry for a reason: Barack Obama led the country astray, and Americans had a right to be outraged. “I will gladly wear the mantle of anger,” Trump stated. Excellent answer – and an answer the establishment needed to hear. His second great moment came in an exchange with Senator Ted Cruz (R-TX), regarding Cruz’s ill-advised comments that Trump represented “New York values.” As I’ve written, everyone knows, in good faith, what this means: social liberalism, big government, and a comfortable relationship between financial institutions and policymakers. But Trump used the 9/11 club effectively against Cruz, suggesting that by ripping “New York values,” Cruz was actually ripping New Yorkers who stood tall on 9/11. It was a highly calculated, effectively emotional maneuver.

On the other hand, Trump got scorched by Cruz at least once, as we’ll discuss, and on his China policy, he stumbled about for a coherent answer. We could give Trump an A, but he didn’t finish off his closest competitor – and in fact, elevated him by not doing so.

Senator Ted Cruz: A. Cruz elevated himself more than any other candidate tonight. We’ve spent months watching Cruz make nice with Trump, to the consternation of the establishment and the mainstream media. But this week, with Trump attacking Cruz over his presidential eligibility and a margin loan from Goldman Sachs, it became clear that the hands-off policy couldn’t last. The question was whether Cruz could survive a fight with Trump.

In his first fight, Cruz clocked Trump. Hard. He unleashed on the eligibility question, pointing out the flaws in Trump’s legal argument; destroying Trump’s cited legal authority, leftist legal scholar Larry Tribe; and finally stating, correctly, that Trump only started to care about Cruz’s eligibility after Cruz began rising in the polls. He even cleverly dropped the fact that Trump, according to Trump’s own legal authorities, wasn’t a natural born citizen since his mother wasn’t a citizen. Smart. Trump had no good response. He fumbled, he bumbled, and eventually admitted that the eligibility attack only began to matter when he felt threatened by Cruz.

That was a clear win — and by knocking Trump down on an issue on which Trump was the aggressor, Cruz became the first candidate to lay a glove on Trump. Strategically, this was important – Cruz has drawn all the support he can from being friendly with Trump. Now he wants to show the rest of the voting base that he can live outside Trump’s shadow. He did that successfully.

He also got lucky. Today’s attack on Cruz involved a margin loan he took from Goldman Sachs. That isn’t a big deal, but most Americans don’t know that Cruz’s wife works for Goldman – and that seems to undercut his outsider pitch. Cruz gave a great answer about the loan issue, which is in fact a non-issue. And then, miraculously, Fox Business went to break – before anyone else could hit him. That was very lucky.

He didn’t emerge the clear victor over Trump because of Trump’s victory on “New York values,” and he also took a bruise from Senator Marco Rubio (R-FL) on his tax plan, as well as some past flip-flopping on immigration. But those hits aren’t likely to do him much damage – Rubio has no credibility on immigration, and outside New York, the “New York values” debate has little draw.

A great night for Cruz, who may have just jumped into a two-man race for the nomination with Trump.

Senator Marco Rubio: B. Going into the night, Rubio’s big problem was the crab pot of the establishment. Rubio has to fight off Kasich, Governor Chris Christie, and former Governor Jeb Bush in New Hampshire. He needs to separate himself from them in the polls. His performance tonight won’t do that. Rubio looked somewhat nervous; he was lucky the only question asked about his amnesty plan came over two hours into the debate. His answer was extraordinarily weak — he claimed that he only changed his mind because of ISIS. To which Cruz rightly asked whether he remembered a group called Al Qaeda. Ouch.

But Rubio did damage to Cruz, too. He ended up in a few scrums with Christie – and he gets a B because he was able to fend Christie off, doing Christie some severe damage on Christie’s liberal record on gun control and Common Core. But he didn’t help himself enough, especially because he tried to hit too many targets, and appeared somewhat manic doing so. Rubio’s failures will keep all those other candidates in – and even open the door to the possibility that support from the establishment wing of the party begins to bleed over to the surging Cruz.

Governor Chris Christie: C. Christie needed to smack down Rubio and claim the establishment mantle. He did his best. He was combative; he played the “I’m a doer, not a sayer” card several times against Cruz and Rubio. But he never had the killer moment against Rubio. His best hit came late in the debate, when he told Rubio that he’d failed in his attack against Cruz: “You had your chance, Marco, you blew it.” But overall, Christie never achieved liftoff. And that means he, like Rubio, is still stuck in that crab pot.

Former Governor Jeb Bush: D. Bush had his best debate, which is to say he was wildly boring. Before the debate, I predicted that Jeb would attempt to glide over the Christie-Rubio fight, and claim the establishment mantle by playing the adult. That’s precisely what he tried to do. Instead, he just felt like an awkward grandfather, unable to communicate with the youngsters. He repeatedly broke up important exchanges to give stump speeches. He even tried the Christie tactic of calling his opponents “backbenchers.” That didn’t work either. His worst moment came – as always – in attacking Trump. The attack itself was substantively correct: Trump’s China policy is incoherent. But then Trump called him weak, and Jeb smiled weakly. Oy, Jeb. It shouldn’t be Jeb! It should be Jeb? But to Rubio’s dismay, he’ll stick around through New Hampshire.

Dr. Ben Carson: D. Carson never made a move. He’s always charming, he always has a few disarming laugh lines, but he just doesn’t belong on that stage.

Governor John Kasich: GO AWAY. Kasich actually had his best night, and he answered the crucial question of whether his father was a mailman. He somehow contained the volcanic rage buried within him enough to appear somewhat genial. But it won’t matter. Still, Rubio’s inability to shut the establishment door means he stays in – and right now, he’s running second in New Hampshire.

So, there you have it. Cruz emerges as the winner by dint of having jumped into a battle with Trump and fought the big dog to a standstill. Rubio didn’t do poorly, but he didn’t do himself any favors. Meanwhile, the rest of the pack nips at Rubio’s heels.

Two weeks to go.

Ben Shapiro is Senior Editor-At-Large of Breitbart News, Editor-in-Chief of DailyWire.com, and The New York Times bestselling author, most recently, of the book, The People vs. Barack Obama: The Criminal Case Against The Obama Administration (Threshold Editions, June 10, 2014). Follow Ben Shapiro on Twitter @benshapiro.