Boris Johnson has described Tony Blair's argument that the violent insurgency in Iraq has nothing to do with the 2003 invasion as "unhinged".
Writing in the Daily Telegraph, the Mayor of London says the former prime minister is undermining the case for "serious and effective intervention".
He described the invasion as a "tragic mistake" and a "misbegotten folly".
Mr Blair was prime minister when forces invaded Iraq in 2003 on the basis that it had weapons of mass destruction.
On Sunday, Mr Blair said there would still be a "major problem" in Iraq now even if Saddam Hussein had not been toppled in 2003.
Mr Blair insisted the current crisis was an issue that "affects us all" and urged more western intervention in the area.
"Even if you'd left Saddam in place in 2003, then when 2011 happened - and you had the Arab revolutions going through Tunisia and Libya and Yemen and Bahrain and Egypt and Syria - you would have still had a major problem in Iraq.
"Indeed, you can see what happens when you leave the dictator in place, as has happened with Assad now. The problems don't go away," he said.
The last of Britain's troops withdrew from Iraq in 2011 after eight years.
Mr Johnson's comments came as the Iraqi government claimed to have "regained the initiative" against an offensive by Sunni rebels led by ISIS - the Islamic State in Iraq and the Levant.
Extremists captured key cities, including Mosul and Tikrit, last week, but several towns have now been retaken from the rebels.
Writing in his weekly column, the Mayor of London said he has "come to the conclusion that Tony Blair has finally gone mad".
He writes: "The Iraq war was a tragic mistake; and by refusing to accept this, Blair is now undermining the very cause he advocates - the possibility of serious and effective intervention.
"Blair's argument (if that is the word for his chain of bonkers assertions) is that we were right in 2003, and that we would be right to intervene again.
"Many rightly recoil from that logic. It is surely obvious that the 2003 invasion was a misbegotten folly."
He later writes: "Somebody needs to get on to Tony Blair and tell him to put a sock in it - or at least to accept the reality of the disaster he helped to engender. Then he might be worth hearing."
But Labour MP Kevin Brennan said the mayor of London, when he was an MP, had backed military action in Iraq.
"I seem to recall when many of us were voting against war in Iraq in 2003, Boris Johnson was in the other division lobby in the Commons," he tweeted.
Speaking on Monday, Foreign Secretary William Hague said the turmoil in Iraq should not be used as an opportunity for a "proxy debate about Tony Blair and everything he has ever said and done".
Asked in the Commons by the SNP's Angus Robertson whether Mr Blair should resign from his role as a Middle East peace envoy, Mr Hague said this would "not be helpful".
Earlier on Monday, Mr Hague told BBC Radio 4's Today programme that it was "entirely possible" to argue that "it was the right thing to remove Saddam Hussein but that mistakes were made in the aftermath of that".
He added: "Of course, it is possible to argue that Western intervention makes these problems worse and it is possible to argue the absence of Western intervention makes these things worse.
"Foreign policy is the fine judgement between those things. I think the truth about intervention is that it is only right when it is a last resort and where it either has limited objectives or it has a very comprehensive plan working with regional and local leaders to go with it."