The Senate on Thursday approved a $1.7 trillion spending bill with help from more than a dozen Republican lawmakers after a fight over immigration policy nearly derailed the legislation.

In an 68-29 vote, the Senate passed a bill that provides $858 billion for defense, $787 billion for non-defense domestic programs and nearly $45 billion for military and humanitarian aid to Ukraine. The more than 4,000-page bill funds the government for the rest of the fiscal year, and includes more than 7,200 earmarks totaling more than $15 billion.

The bill was passed despite warnings from some Republicans that it amounts to more federal spending that would make inflation worse and expand the $31.3 trillion national debt.

Senate passage sends the bill to the House, where Speaker Nancy Pelosi is expected to hold a vote as early as Thursday evening to allow lawmakers to depart for the Christmas holiday.

"The bill is so important to get done because it will be good for families, for veterans, our national security, even for the health of our democratic institutions," said Senate Majority Leader Chuck Schumer, D-N.Y.


Chuck Schumer

Senate Majority Leader Chuck Schumer, D-N.Y., pushed through a $1.7 trillion spending bill Thursday, just one day before a partial government shutdown. (AP Photo/J. Scott Applewhite)

Although only a majority vote was needed, a handful of Republicans voted with every single Senate Democrat to pass the bill. Republican support was slightly lower than the 21 GOP votes the measure garnered earlier this week to overcome the Senate's 60-vote filibuster threshold.

While both parties negotiated the spending bill in the Senate, it generated significant opposition from Republicans.

Several Senate Republicans even mounted a last-minute push to block the measure in the lead-up to the final vote. Arguing that a GOP-controlled House could exact larger concessions from President Biden come January, the Republicans sought to amend the bill in ways Democrats said would make it impossible to pass in the House.


"Senate Republicans should instead support a short-term spending bill, allowing the new Congress — with the incoming Republican House — to start the spending process over again in January," said Sen. Mike Lee, R-Utah.

Late Wednesday, the bill was almost derailed by a Republican push to add immigration language. In exchange for agreeing to speed up the vote process, Lee wanted a vote to maintain a Trump-era immigration policy in place that has prevented millions of immigrants from entering the U.S. That so-called Title 42 policy, which was invoked during the height of the COVID-19 pandemic, allows immigration to be curtailed for public health reasons.

Nancy Pelosi speaking

The spending bill now heads to the House of Representatives, where Speaker Nancy Pelosi is expected to hold a vote before lawmakers depart for the Christmas holiday. (AP Photo/Amanda Andrade-Rhoades)

Lee and GOP senators hoped a simple-majority vote on the amendment keeping Title 42 in place would win the support of enough red state Democrats to pass.

Lee's demand froze the Senate for several hours, and he accused Democrats of dodging the issue because the measure might easily pass. While popular with some moderate Democrats, the Title 42 policy is widely opposed by progressives in the House and would have likely tanked the bill.

By Thursday morning, Schumer agreed to give Lee his vote but also set up a vote on an amendment from Arizona independent Sen. Kyrsten Sinema that would have kept Title 42 in place and increased funding for immigration enforcement and processing.

The Senate rejected Sinema's amendment, which required 60 votes for passage. But Sinema's language allowed moderate Democrats facing tough re-election challenges in 2024, like Sinema and Montana Sen. Jon Tester, to vote for keeping Title 42 in place while opposing Lee's amendment, which also failed due to lack of Democratic support.

Mike Lee

Sen. Mike Lee, R-Utah, and other GOP senators hoped a simple majority vote on an amendment keeping Title 42 in place would garner the support of sufficient red state Democrats to pass. (Bill Clark/CQ-Roll Call, Inc via Getty Images)

"This was a runaround designed by Schumer to protect the budget without putting vulnerable senators out on a limb," said a Senate Democratic aide. "Everyone won, except for Mike Lee."


The Senate also brushed off an argument from Sen. Rand Paul, R-Ky., that the giant spending bill ignores Senate rules aimed at making sure new spending is paid for with spending cuts. But when forced by Paul to confront that issue, the Senate voted 65-31 in favor of waiving Senate budget rules.