WASHINGTON — The House on Thursday morning narrowly passed a massive domestic policy package, a major victory for President Donald Trump and Speaker Mike Johnson, R-La., after weeks of heated intraparty negotiations and some last-minute changes.
The multitrillion-dollar tax cut and spending measure now heads to the Senate, where Republicans have vowed to change it.
Following hours of overnight debate, the vote on final passage in the House was 215-214, with two Republicans — Reps. Thomas Massie of Kentucky and Warren Davidson of Ohio — joining all Democrats present in opposition.
Rep. Andy Harris, R-Md., the leader of the far-right House Freedom Caucus, voted present. Reps. Andrew Garbarino, R-N.Y., and David Schweikert, R-Ariz., accidentally missed the vote, but said they would have voted yes.
Garbarino “fell asleep in the back, no kidding. I’m going to just strangle him,” Johnson joked to reporters, adding that Schweikert tried to vote but missed it by seconds.
Dubbed by Trump as the “big, beautiful bill,” the legislation extends the president’s expiring tax cuts passed in 2017 and contains an infusion of money to expand the military, beef up border security and carry out his mass deportation plans. It also fulfills two of Trump’s campaign promises: eliminating taxes on tips and overtime work.
The bill also slashes spending in other areas, including hundreds of billions of dollars in cuts to Medicaid and the Supplemental Nutrition Assistance Program (SNAP), while rescinding a series of clean energy tax credits passed by Democrats in 2022. And it raises the debt ceiling by $4 trillion.
Taking a victory lap after the vote, Johnson told reporters that the massive package had been on the verge of collapse at times.
“There’s a lot of prayer that brought this together. I’m just going to be very blunt about it. There was a few moments over the last week when it looked like the thing might fall apart,” Johnson said, flanked by his GOP leadership team and committee chairmen. “And I went to the little chapel over here and got on my knees and prayed that these guys would have wisdom and stamina and discernment.”
“And that’s the secret here. And teamwork and mutual respect that everybody has for one another, and I think that’s what defines the Republican Party,” he continued. “It’s a great day to be an American. It’s great to be a Republican.”
But Johnson acknowledged there is still a long way to go in the process. The speaker had lunch with Senate Republicans this week and said he’s encouraged them “to modify this as little as possible.” Any changes the Senate makes would have to be approved by the House.
Congressional GOP leaders have said they want to send the final bill to Trump’s desk for his signature by July 4.
The vote came after Republicans and Democrats sparred over the legislation during a marathon House Rules Committee hearing that began just after 1 a.m. ET Wednesday and wrapped 21 hours later, when the panel sent the bill to the floor.
The sweeping package included a series of last-minute changes to appease factions of GOP holdouts whose votes are essential in the slim House majority. Republicans can only spare three GOP defections on any vote in the face of unified Democratic opposition.
Conservative hard-liners secured changes in the form of speeding up the Medicaid work requirements to begin at the end of 2026, and phasing out the clean energy tax credits more quickly.
A group of blue-state Republicans secured a larger state and local deduction (SALT) cap of $40,000 to bring home to their high-tax districts.
The measure was projected Tuesday by the nonpartisan Congressional Budget Office to increase the national debt by $2.3 trillion. The budget office said it would rescind health care coverage for 8.6 million people.
Overall, the package is set to decrease household resources among the lowest decile of income earners by 4%, while increase household resources among the highest decile of income earners by 2% by 2033.
It is unclear what impact the late changes will have on the final estimate.
Trump helped Johnson and GOP leaders close the deal, joining a House Republican conference meeting at the Capitol on Tuesday. The president told holdouts in the room that it was now time to drop their demands and unify behind his “big, beautiful bill.”
When Harris and other conservatives dug in further Wednesday, Trump called the group’s leaders and GOP leaders down to the White House to get them on board.
Both Johnson and Majority Leader Steve Scalise, R-La., returned from the meeting vowing to charge ahead with a vote, even without public assurances from the Freedom Caucus. The leaders were desperate to move quickly because they feared there could be GOP absences later in the week.
Ultimately, some of the anti-spending hawks who were skeptical of the bill, including Reps. Chip Roy, R-Texas, and Ralph Norman, R-S.C., voted for the bill.
“Am I happy with the deficits? No,” Norman told reporters after the vote. “We held it out as long as we could to get the cuts, as long as we could. We couldn’t do it. We live to fight another day.”
Democrats repeatedly blasted Republicans for debating and passing the bill “under the cover of darkness,” and warned that the deep spending cuts would boot millions of Americans off the Medicaid rolls.
“Here’s what it will mean for the American people,” Minority Leader Hakeem Jeffries, D.N-Y., said in a speech before the vote. “Children will get hurt. Women will get hurt. Older Americans who rely on Medicaid for nursing home care and for home care will get hurt. People with disabilities who rely on Medicaid to survive, will get hurt. Hospitals in your districts will close. Nursing homes will shut down. And people will die.”
And Jeffries warned Republicans that voters would punish them in the 2026 midterm elections for supporting this bill.
“When the votes are ultimately cast on that first Tuesday in November next year,” Jeffries said, “this day may very well turn out to be the day that House Republicans lost control of the United States House of Representatives.”