Kamala Harris is a one-hit wonder. Joe Biden is the Comeback Kid.

The California senator, who was the unqualified star of her first debate for going after Joe Biden, came into her second with a real shot at getting Democrats to turn their attentions and affections toward her.

Instead, given the opportunity she had and squandered, Harris turned in one of the worst debate performances in history. There was no single horrible moment, like Rick Perry forgetting the name of the third cabinet department he’d eliminate or Marco Rubio repeating himself robotically. No, the whole thing was horrible.

At the same time, Biden was facing a pundit class that viewed his uncertain first debate performance as a harbinger of doom — one more bad show and he’d be through. Well, toast he ain’t. He won the debate hands down, in part because he had a ready parry for every thrust made at him by the rest of the field.

Example: When Kristen Gillibrand tried to make it out that he had somehow been hostile to working mothers, he pointed out that his late wife and his present wife had always worked and that in a joint appearance at Syracuse University, Gillibrand had praised him as a leader in this area.

Bam.

Gillibrand, by the way, was a cringe-inducing embarrassment. In one answer on race, she seemed to suggest that she was well-equipped to deal with the issue because she could go to white people like herself and explain that if things were truly fair in this country, cops would be shooting their kids.

And that wasn’t even the worst of it. The worst of it was this Gillibrand quote: “I know how to beat Trump. I already did it. I took a bus tour.”

What about Bill De Blasio? I will simply say to the rest of the country: Now you know. Now you know what a schmuck we have in our City Hall. We have two more years of this before he goes back permanently to his gym. Pray for us.

As for Harris:

At the opening, she was unable to defend her health care plan effectively against a very basic charge levied by Biden, that it would cost $3 trillion. Any minimally prepared debater would have anticipated the attack and had a counter-salvo prepared. She didn’t.

That incompetence characterized nearly every word she spoke.

She spent precious minutes complaining everybody on the stage was mischaracterizing her health care plan. She violated Debate Rule 101: When you’re complaining, you’re losing.

And when she went after Biden yet again on the supposedly monstrous crime bill, Biden simply told people to Google “thousand prisoners free Kamala Harris.” When I did it, atop the search is a story from the Daily Beast headlined “Kamala Harris’ A.G. Office Tried to Keep Inmates Locked Up for Cheap Labor.”

Boom.

Cory Booker tried to go at Biden on crime as well, only to find himself attacked by Biden for his own police department’s stop-and-frisk policies. This all came after Booker complained the debate was dividing Democrats instead of bringing Democrats together against Donald Trump.

Donald Trump’s team is doing a joyous jig because Biden said he would eliminate coal just as Hillary Clinton did — endangering Biden’s possibility of winning Pennsylvania back in 2020 should he be the nominee.

Still, Biden’s got to get to that convention stage in July. On night two of debate round two, Joe Biden moved closer to that goal.