The vote put the House on record for the first time as rejecting Bush's conduct of the nearly four-year war.
Pelosi said: "The passage of this legislation will signal a change in direction in Iraq that will end the fighting and bring our troops home."
Some of Bush's Republican allies argued against the measure and said it represented a Democratic attempt to cut off money for the troops.
Roy Blunt, a Republican representative, said: "Their so-called slow-bleed approach is the bite that will surely hurt those fighting under America's flag overseas.
"This non-binding resolution is the first step in an all-too-binding spiral toward defeat in a fight that we cannot afford to lose."
Pelosi hoped the resolution would
'change direction in Iraq' [Reuters]
The congressional resolution added that "Congress and the American people will continue to support and protect the members of the United States armed forces who are serving or who have served bravely and honorably in Iraq".
The vote came at the end of a week of debate in which all members of the House had a chance to voice their opinion.
Congress will now have to debate and vote on the budget for the 'war on terror', including expenditure of more than $93 billion for 2007.
Democratic leaders say they will not cut money for troops abroad but will try to attach conditions on war funding that could force Bush to stop the build-up.
Jack Murtha, the chairman of the House defence appropriations subcommittee and a critic of the Iraq war, has announced that he would condition the release of additional funds in a way that would hamper future troop deployments.
Murtha said politicians must "deny the president the ability to send more US troops into Iraq and to insist instead on restoring our military readiness".