The US House of Representatives last night approved a $556 billion bill last night to fund most of the federal government through September 2008.
The move ends a year-long budget fight with President George W. Bush by also including new money for the Iraq war.
The House gave final congressional approval to the bill, which was cleared by the Senate late on Tuesday, and it goes to Mr Bush for his expected approval.
Anti-war Democrats protested the new round of Iraq money, which they said gave Mr Bush a "blank check" to run the war.
"We're pleased that Congress was able to pass legislation to fund the government this year without raising taxes and within the president's reasonable spending limits. It's also crucial that they provided $70 billion in funding for our troops in harm's way," a White House spokesman said.
The legislation wraps together 11 of the 12 bills the US Congress must handle every year to fund government programmes ranging from health care for the poor and elderly to law enforcement, space exploration, foreign aid and border security.