The House passed a catchall spending bill Wednesday to keep the government running through September of next year.
The House voted 212-206 for the bill that freezes the budgets of many Cabinet departments and funds the war in Afghanistan for another year.
The measure wraps a dozen unfinished spending bills into a single measure.
The bill would cap the agencies' annual operating budgets at the $1.2 trillion approved for the recently finished budget year. That's a $46 billion cut of more than 3 percent from President Obama's request.
It includes $159 billion to prosecute the wars in Afghanistan and Iraq next year.
There are many exceptions to the freeze. Health care programs for veterans and the military would get a boost, and people serving in the military would get a 1.4 percent pay raise.
Critics blasted the bill's content and the manner in which it was passed.
"None of these spending adjustments or changes in policy were ever debated or considered by the Appropriations Committee or the House this year," said Rep. Jerry Lewis, R-Calif., the ranking member on the House Appropriations Committee.
"Rather than simply keeping the government running, this bill picks winners and losers among agencies and programs across government by moving $30 billion between various accounts," he said.
Democrats note that without passing the bill, the government would shut down.
Fox News' Chad Pergram and The Associated Press contributed to this report.