Boris Johnson says he is “proud” of the way the government got supplies of Personal Protective Equipment (PPE) at the start of the coronavirus pandemic.
A report by a spending watchdog found suppliers with links to Conservative MPs were given priority.
Sir Keir Starmer asked why the usual processes had been bypassed – and £21m had been handed to a “middle man”.
The PM told the Labour leader “fast” action had been needed and “any government” would have done the same.
Sir Keir asked about a BBC report that £21m in UK taxpayers’ cash had been given to Spanish businessman who acted as a go-between to secure protective garments for NHS staff.
“I remind the prime minister that a few weeks ago he couldn’t find that amount of money for free school meals for kids over half term,” he told Mr Johnson at Prime Minister’s Questions.
He also highlighted a National Audit Office report, which showed £10.5bn worth of contracts were handed out without competitive tender and “suppliers with political connections were 10 times more likely to be awarded contracts”.
He said: “Can the prime minister give a cast-iron assurance that from now on all government contracts will be subject to proper process, with full transparency and accountability?”
The prime minister said all government contracts will be published.
“I think it is extraordinary he attacks the government for securing PPE in full quantities,” he added.
“At the time he bashed the government for not moving fast enough, now, absolutely absurdly, Captain Hindsight is trying to score political points by attacking the government for moving too fast.
“I am proud of securing PPE supplies and any government would have done the same.”
The prime minister, who was taking part in PMQs via video link after being asked to self-isolate by NHS Track and Trace, thanked suppliers.
And he highlighted calls from Labour’s own MPs to get hold of supplies from unusual sources, including, he said, a football agent seeking to supply ventilators, and a “historical clothing” company.