Philip Hammond has declared that public-sector workers are “overpaid”, as a bitter cabinet war erupted over austerity.

At a heated cabinet meeting on Tuesday, the chancellor refused to lift the 1% cap on wages for public-sector workers on the grounds that they earn more than those in the private sector, along with generous taxpayer-funded pensions.

But Hammond left his colleagues thunderstruck at the language he used. “Public-sector workers are overpaid when you take into account pensions,” he declared. The chancellor then described train drivers as “ludicrously overpaid”.

This morning Hammond said he would not comment on what was said in a private cabinet meeting, but added that he believed public sector workers are paid a “premium” as he defended government policy. He also accused colleagues