UPBEAT BUT TEMPERED ASSESSMENT
Bush stopped short of promising outright victory, as he had earlier before sectarian violence swept Iraq last year. "No one would argue that this war has not come at a high cost in lives and treasure, but those costs are necessary," he said.
The war has cost the United States $500 billion. Tens of thousands of Iraqis have been killed and millions displaced. Nearly 4,000 US soldiers have been killed, as well as 175 British troops and 134 from other countries.
A Washington Post-ABC News poll showed nearly two-thirds of Americans believe the war was not worth waging.
Told about the poll in an interview on ABC's "Good Morning America," Vice President Dick Cheney, in Oman after a visit to Iraq, said dismissively: "So?"
Democratic House Speaker Nancy Pelosi said, "The cost to our national security has been immense -- our military is stretched thin and our reputation in the world is damaged."
Scattered anti-war protests were staged in US cities. In Washington, 32 people were arrested for blocking entry to the Internal Revenue Service and a few dozen noisy demonstrators shouted antiwar slogans outside the White House gates.
Bush, who had strong public support after the al Qaeda attacks on the United States on September 11, 2001, has long called Iraq as a central front against Islamic extremists. But Democrats say his administration has been distracted from what they see as a more important struggle in Afghanistan.
In his speech, Bush hailed the increased role of Iraqi Sunnis in the fight against Sunni Islamist al Qaeda as the "first large-scale Arab uprising against Osama bin Laden, his grim ideology, and his murderous network."
Absent from Bush's speech was any mention of the Iraqi government's record on sectarian reconciliation, an area in which there has been only halting progress.
Violence across Iraq has dropped 60 percent since 30,000 extra US troops became fully deployed in June. But a recent spate of attacks showed that Iraq was far from safe.
Bush's speech was his second in lead-up to the next status report Iraq commander Gen. David Petraeus will give to Congress in early April. The military will complete the withdrawal of about 20,000 troops by July, leaving about 140,000 in Iraq.
Bush reiterated any decision on bringing more troops home would depend on recommendations from commanders on the ground.