David Cameron dubbed shadow chancellor Ed Balls "the most annoying person in modern politics" during noisy Commons exchanges.
The PM had his dig at Mr Balls as he was trying to answer a question from Labour MP Joan Walley.
"I wish the shadow chancellor would occasionally shut up and listen to the answer," said Mr Cameron.
He told a grinning Mr Balls: "I may be alone in thinking him the most annoying person in modern politics."
And - with MPs in uproar - he added a further jibe about Mr Balls's supposed party leadership ambitions, saying: "I've got a feeling the leader of the opposition will one day agree with me, but there we are."
The prime minister then got on with answering Mrs Walley's call for an enterprise zone for her Staffordshire constituency.
According to Mr Balls's office, the shadow chancellor had been shouting across the chamber at the prime minister to accuse him of not answering MPs' questions. He had waved a glass of water at Mr Cameron to suggest he should "calm down".
"We are pretty surprised he snapped. It clearly touched a nerve," said Mr Balls's spokesman.
But a No 10 spokesman said Mr Cameron had been "speaking for the nation" in his comments and that Labour should have "better things" to do than to kick up a fuss about the exchange.
The weekly Commons clash had got off to a good-natured start, with Mr Cameron congratulating Labour leader Ed Miliband on his forthcoming marriage to partner Justine, and the two men swapping jokes about organising a stag night.
But it became increasingly ill-tempered, as Mr Cameron laid into Mr Miliband's speech to the TUC anti-cuts rally in London's Hyde Park on Saturday.
"Far from standing on the shoulders of the suffragettes - or whatever nonsense we heard at the weekend - the fact is the right honourable gentleman is sitting in a great big pool of debt that was his creation and he's got absolutely no idea what to do about it," said Mr Cameron to loud Conservative cheers.
Then Mr Cameron brushed off a question from Labour's Chris Williamson by saying he had "no idea" who the MP was.
The Derby North MP had called for a personal apology from Mr Cameron, who he said had accused him of misleading people on an election leaflet over winter fuel payments.
"I can't believe I accused him of anything because I had absolutely no idea who he was," said Mr Cameron, adding that the government had kept the winter fuel payments as it had promised.
Mr Cameron's comments about Mr Balls came near the end of what was the last Prime Minister's Questions session for four weeks because of the Easter break.