He also announced that he had "authorised our military commanders in Iraq to confront Tehran's murderous activities".

Bush's comments on Tuesday came as Mahmoud Ahmadinejad, the Iranian president, said the US was losing in Iraq and that Iran would fill the "power vacuum" in the region.

Tensions between the US and Iran have been running high since the US in January arrested five Iranians they say are members of Iran's elite Quds Force, which is accused of arming and training Iraqi fighters.

Tehran said the five are diplomats and has demanded their release.

'Time needed'

Speaking to thousands of veterans at the American Legion convention, Bush said that "if these forces of radicalism and extremism were allowed to drive us out of the Middle East ... the region would be dramatically transformed in a way that could imperil the civilised world".

Pointing at military progress in Iraq, Bush said: "It will take time for the recent progress we have seen in security to translate into political progress.

"Leaders in Washington need to look for ways to help our Iraqi allies succeed, not for excuses to abandon them."

Bush hit out at critics, saying that "they disregard the political advances on the local level".

He said: "Iraqis are increasingly reaching accommodations with each other," but acknowledge that "our new strategy is showing far fewer results at the national level".

'Mismanaged war'

The president has routinely described Iraq as the central front in America's so-called war on terror.

But many Democrats were unimpressed with Bush's speech on Tuesday, accusing him of confusing the issue by linking the invasion of Iraq to the September 11 attacks on the World Trade Centre in 2001.