It was Ed Miliband's first resounding win of 2014.
He came in with a spring in his step. Once the session was over, Theresa May would be announcing a programme for Britain to take on Syrian refugees – a direct result of his embarrassing series of questions to the PM last week. It was a significant win and presumably he was still savouring it as he entered the Chamber.
The Labour leader gave it one question. He avoided any triumphalism, but made sure he put his stamp on it. Perhaps it irritated Cameron. Either way, the prime minister's performance was seriously below par.
Miliband asked him about a pre-election quote from a leading Conservative saying the 50p tax rate showed "we're all in it together". The quote, of course, came from Cameron. It was a good way of deflating Cameron's inevitable attacks on the policy.
The Labour leader was wearing a mischievous smile, as he always does when he goes on to win. He did not raise his voice to be heard above the din of Tory MPs. He just waited for them to finish. He was calm, confident and poised. As always with his best performances, the sequence of questions was logically structured and forensic: finding a weakness and exposing it.
Miliband asked Cameron to rule out a reduction in the top rate of income tax to 40p, something he cannot do. The reason he can't do it, of course, is because they are in fact considering it.
Cameron offered a barrage of useless bluster. He was all over the place, firing off the key attack lines he'd been given, addressing nothing. He is one of the most evasive prime ministers ever to take to the dispatch box, but usually he avoids scrutiny with more panache than this. Today, his desperation not to answer the question was clear for all to see. Sensibly, Miliband did not call off his attack.
The Tories shut up in the face of a wall of Labour noise. It's rare to see the opposition benches come out so strongly behind their leader.
Cameron went for the pre-prepared jokes. He described the shadow chancellor as the "definition of denial... it'll be there in the dictionary: Balls, Ed."
It fell flat. Later he tried another one, comparing the two Eds to George Clooney and Sandra Bullock in Gravity. "I don't know whether you've seen the film Gravity but they remind me these two of two people who stepped out into the void with absolutely no idea what to do," he said. It was desperate stuff. Even the most desperate Tory MPs, the ones who loyally read out whips' questions from sheets of paper, couldn't muster a laugh.
Miliband answered: "It's hard to remember now, but a long time ago I asked a question." He asked it again.
The prime minister was frantic to get up, but by the time he reached the despatch box he remained no nearer the question.
"It is a very simple question. That is the point of these occasions," Miliband said, coldly enjoying his upper hand.
The Tories looked awkward. Miliband asked Cameron to rule out a 40p top rate a third time.
"I'll tell him our priority," Cameron answered, almost laughably, and then continued down his own path.
Miliband concluded: "He's had three opportunities to answer and he couldn’t give a straight answer to the question."
It was game-set-and-match. Cameron tried to sum up but his breath left him at the worst moment, cutting a sentence in half. He stumbled over his tongue and went on too long to make up for it. It was a weak finish to a poor performance.
We've been here before. Cameron wilts under the lights when Miliband adopts a forensic, logical approach on difficult questions. But in the past the leader of the opposition has forgotten what he does best and tries to take on the PM at his own game: swagger and robust, alpha-male delivery.
If it's a battle of swagger, Miliband will never win. If it's about shining a spotlight on Cameron's evasions, he has a better chance. With any luck, his advisers will have observed what he did right today.