The director general feared another Sachsgate-style fiasco as 21,335 complaints flooded in about the Top Gear presenter’s tirade on The One Show.

Despite earlier bragging that he had no intention of saying sorry for his crass comments about public sector workers striking over pension cuts, Clarkson caved in after Mr Thompson’s intervention.

A BBC insider revealed: “Chats were had and Jeremy was persuaded that it was the right thing to do. Now that he has apologised, that is the end of it. There will be no ­disciplinary action and he will not be fired.

“You can’t force Jeremy to do anything he doesn’t want to do so he must have agreed that this was the best way forward.”

Clarkson, who once went on strike himself, told one reporter that One Show producers knew in advance the jokes he would make on air.

But the BBC dismissed the claim. A spokeswoman said: “There was a briefing meeting with producers beforehand to discuss the options of what he might say. They came away from that thinking that Jeremy had an understanding of where the line was. Clearly, he didn’t.”

Clarkson’s tough line on strikers is clearly a far cry from when he was a cub reporter. It emerged yesterday he went on a strike as an 18-year-old on his first day with the Rotherham Advertiser in 1978.

He said: “I didn’t really know why. I still don’t actually.”

The 51-year-old, now in China with Top Gear, sparked outcry on Wednesday when he told One Show hosts Matt Baker and Alex Jones those who walked out this week should be “executed in front of their families”.

Clarkson initially refused to apologise and insisted he had been poking fun at the BBC’s impartiality rather than the strikers.

But there were calls for him to be axed and Unison threatened legal action against him.

Mr Thompson moved to avoid a repeat of the furore sparked by Jonathan Ross and Russell Brand who, in 2008, left a string of foul-mouthed messages on actor Andrew Sachs’ answer machine during a BBC 6 Music radio show. More than 27,000 listeners complained.