The 218-212 vote, mostly along party lines, was a hard-fought victory for Democrats, who faced divisions within their own ranks on the rancorous issue. Passage marked their most brazen challenge yet to Bush on a war that has killed more than 3,200 troops and lost favor with the American public.
He dismissed their action as "political theater" and said he would veto the bill if it reached his desk. The Senate is about to take up its own version.
The $124 billion House legislation would pay for wars in Iraq and Afghanistan this year but would require that combat troops come home from Iraq before September 2008 - or earlier if the Iraqi government did not meet certain requirements. Democrats said it was time to heed the mandate of their election sweep last November, which gave them control of Congress.
"The American people have lost faith in the president's conduct of this war," said House Speaker Nancy Pelosi, D-Calif. "The American people see the reality of the war, the president does not."
Just over an hour following the vote, Bush angrily accused Democrats of playing politics and renewed his promise to veto the spending legislation if it included their withdrawal timetable, despite administration claims that the money is needed next month by troops.
"These Democrats believe that the longer they can delay funding for our troops, the more likely they are to force me to accept restrictions on our commanders, an artificial timetable for withdrawal and their pet spending projects. This is not going to happen," he said.
Congress so far has provided more than $500 billion for the wars in Iraq and Afghanistan, including about $350 billion for Iraq alone, according to the Congressional Research Service.
Across the Capitol, the Senate planned to begin debate Monday on its own war spending bill, which also calls for a troop withdrawal - and also has drawn a Bush veto threat.
The Senate's $122 billion measure would require that Bush begin bringing home an unspecified number of troops within four months with a non-binding goal of getting all combat troops out by March 31, 2008.
These bills "offer a responsible strategy that reflects what the American people asked for in November - redeploying our troops out of Iraq and refocusing our resources to more effectively fight the war on terror," said Senate Majority Leader Harry Reid, D-Nev.
While Friday's House vote represented the Democrats' latest intensifying of political pressure on Bush, they still face long odds of ultimately forcing him to sign such legislation.
In the Senate, Democratic leaders will need 60 votes to prevail - a tall order because that would mean persuading about a dozen Republicans to join them. And should lawmakers send Bush a measure he rejects, both chambers would need two-thirds majorities to override his veto - margins that neither seems likely to muster. Voting for the House bill were 216 Democrats and two Republicans - Wayne Gilchrest of Maryland and Walter Jones of North Carolina. Of the 212 members who opposed it, 198 were Republicans and 14 were Democrats. Those opposing Democrats included seven of the party's more conservative members, including Georgia Rep. Jim Marshall, Tennessee Rep. Lincoln Davis and Mississippi Rep. Gene Taylor, who say they do not want to tie the hands of military commanders. The other seven dissenters were members of a liberal anti-war caucus who routinely oppose war spending and would accept only legislation that would bring troops home immediately. Fearing that other liberals would join them and tip the scales, Pelosi had spent days trying to convince members that the bill was Congress' best shot at forcing a new course in Iraq - an argument that was aided when the Democrats added more than $20 billion in domestic spending in an effort to lure votes. Pelosi received a boost this week when several of the bill's most consistent critics said they would not pressure members to vote against it, even though they would oppose it themselves. The vote was considered a personal victory for the new speaker, whose husband watched the debate Friday from the gallery overlooking the House floor. Anti-war groups remained divided on whether passage of the bill was a good thing, and protesters tried to disrupt debate Friday and pressure members to oppose the bill. "This is just the beginning of the beginning of the end of this war," said Rep. Barbara Lee, D-Calif., among those who opposed the bill. The emotional debate surrounding the bill echoed clashes between lawmakers and the White House over the Vietnam War four decades ago. "We're going to make a difference with this bill," bellowed Rep. John Murtha, D-Pa., a Vietnam War veteran who helped write the legislation. "We're going to bring those troops home. We're going to start changing the direction of this great nation," he said, bringing a standing ovation and hugs from his colleagues. Republicans countered that the bill would be tantamount to conceding defeat. "The stakes in Iraq are too high and the sacrifices made by our military personnel and their families too great to be content with anything but success," said Republican Whip Roy Blunt, R-Mo. Sens. John McCain, R-Ariz., Lindsey Graham, R-S.C., Joseph Lieberman, I-Conn., and Tom Coburn, R-Okla., said they planned to try to strip the withdrawal language from the Senate bill - which would probably require a difficult-to-achieve 60 votes. "We're not prepared to tell the enemy, ‘hang on, we'll give you a date when we are leaving,' said McCain, the top Republican on the Armed Services Committee. AP-CS-03-23-07 1735EDT