With Labour trailing in opinion polls and Sir Keir Starmer facing questions about his leadership, Reeves had been under pressure to deliver a Budget that went down well with Labour MPs and voters worried about the cost of living, without spooking the financial markets.

It contains measures that will please Labour MPs – such as ending the two-child benefit cap next April, which Reeves said would lift 450,000 children out of poverty.

Despite the name, it does not affect child benefit – but relates to tax credits and universal credit payments if you have or had a third or subsequent child born after 6 April 2017.

Reeves said the policy, introduced by the previous Conservative government, had “made almost no difference to the size of families” and had not cut the welfare bill “but it’s kids who have paid the price”.

Reeves was also under pressure to reduce the cost of government debt and increase the buffer she has against future economic shocks, known as headroom.

She told MPs debt would continue to fall as a share of national income and the amount of headroom will double to £21.7bn.

“I said there would be no return to austerity, and I meant it,” she told MPs.

“This Budget will maintain our investment in our economy and our National Health Service. I said I would cut the cost of living, and I meant it.

“This Budget will bring down inflation and provide immediate relief for families. I said that I would cut debt and borrowing, and I meant it.

“Because of this Budget, borrowing will fall as a share of GDP in every year of the forecast.”