The French government is in crisis after François Hollande's former budget minister and tax tsar was charged with tax fraud following a shock confession that he had held a secret foreign bank account for 20 years and had repeatedly lied about it.

Jérôme Cahuzac's sudden admission that he hid €600,000 (£510,000) offshore for more than two decades is the biggest scandal to hit Hollande's presidency.

The public admission by the man who led France's fight against tax evasion that he secretly defrauded the taxman and was "caught in a spiral of lies" is a huge embarrassment for Hollande, who promised that his government would be beyond reproach after the corruption allegations that dogged previous French administrations.

Until last month, Cahuzac, 60, a former MP and cardiologist who became a plastic surgeon specialising in hair transplants, was Hollande's budget minister leading a crusade against tax fraudsters and tax havens. He had the crucial task of streamlining the budget and running Hollande's crackdown on rich individuals who would be made to pay a bigger share of the tax burden.

In December last year, the investigative website Mediapart reported that Cahuzac had held an undisclosed account at the Swiss bank UBS for 20 years and had travelled to Geneva to close it and transfer the money to Singapore just before he was made head of the parliamentary finance commission in February 2010.

The site published a recording in which Cahuzac allegedly told his wealth manager of his embarrassment over the Swiss account in 2000. A voice said to be Cahuzac's says in the recording: "What bothers me is that I still have an account open with UBS – UBS is not necessarily the most hidden of banks."

For the four months since, Cahuzac had repeatedly sworn he had no hidden account, taking libel action against Mediapart, swearing before parliament that he had "never had an account abroad" and taking to the airwaves to issue strong denials while continuing to lead France's clampdown on tax evasion.

Two weeks ago, when judges opened a preliminary inquiry into the account and his own possible tax evasion, he finally resigned but insisted he was innocent. Hollande applauded his resignation to "better defend his honour".

But on Tuesday, Cahuzac asked to see the investigating judges and then issued his shock confession via his blog, announcing that he was sorry for lying. He said the hidden account did exist but he did not say which country it was in.

"I was caught in a spiral of lies and I did wrong," he wrote. "I ask the president, the prime minister, my former colleagues in the government, to forgive me for the damage I have caused them." He said he was "devastated by remorse".

His lawyer said he had been placed under formal investigation for allegedly laundering the proceeds of tax fraud.

French Socialist MPs reacted with shock to what was a huge blow to the credibility of the French political class. Hollande described Cahuzac's actions as an "unforgivable moral error". The prime minister Jean-Marc Ayrault said "lies are not acceptable in democracy" and rushed to appear on the prime-time news to limit the damage.

Pascal Durand, head of the Green party, which has two ministers in government, said "Mr Cahuzac's lie was a lie of state" which "discredits the collective word of politicians".

Jean-François Copé, head of the rightwing UMP party, called for Hollande to address the nation to explain how much he knew.