Republicans, however, on Tuesday defended the refusal to change a strategy Bush said has yielded uneven but significant progress.
Battered by polls showing that most Americans disapprove of how he has handled the war, Bush said in his speech he would not send more US forces to Iraq and again rejected setting a timetable for ending the US military presence.
"The president missed an opportunity tonight for straight talk to the American people," said Nancy Pelosi, the Democratic minority leader in the House of Representatives.
"The American people understand what is at stake in Iraq and in the Middle East. That is why it is so disappointing that the president failed tonight, as he has failed consistently since the war began, to lay out specifics for success, including performance benchmarks," she added.
Senator Ted Kennedy, a frequent critic of the war, said the administration's policy on Iraq was "adrift".
Bush insisted his plans in Iraq
"Our soldiers in Iraq need more than assurances of progress from the president," Kennedy said.
"They need an effective plan to end the violence, bring peace and stability to Iraq, and return home with dignity and honour. Unfortunately, the president did not level with our troops and the American people and offer an effective strategy for success," he said.
Senator John Kerry, Bush's Democratic rival in the last presidential election, accused the US leader of creating a "third rationale" for going to war.
"The first, of course, was weapons of mass destruction. The second was democracy. And now tonight, it's to combat the hotbed of terrorism," Kerry told CNN.
"But most Americans are aware that the hotbed of terrorism never existed in Iraq until we got there, and it has in fact grown increasingly as we are there," he said.
He added that "we can do better" to help US troops fighting in Iraq.
"We owe them the leadership that's equal to their sacrifice. And I think we have yet to provide that," Kerry said.
Democratic National Committee Chairman Howard Dean slammed Bush for failing "to show the same courage our troops and their families show every day".
"They need an effective plan to end the violence, bring peace and stability to Iraq, and return home with dignity and honour"
In his speech, Bush closely tied the war in Iraq to the 11 September 2001, attacks by al-Qaida and the "war on terrorism" that underpins much of his support.
He also rejected the idea that Washington sent too few troops to secure Iraq and has too few there now to rebuild the country and set it on course for democracy.
Afterwards, congressional Republicans reinforced those themes.
"The president is right. We cannot allow the terrorists to shake our resolve," House Speaker Dennis Hastert said.