WASHINGTON — The House on Thursday narrowly approved a bill to repeal and replace major parts of the Affordable Care Act, as Republicans recovered from their earlier failures and moved a step closer to delivering their promise to reshape American health care without mandated insurance coverage.
The vote, 217-213, on President Trump’s 105th day in office, keeps alive the Republican dream to unwind the signature legislative achievement of former President Barack Obama. The House measure faces profound uncertainty in the Senate, where the legislation’s steep spending cuts will almost certainly be moderated. Any legislation that can get through the Senate will again have to clear the House and its conservative majority.
Just before the House vote, the Senate on Thursday gave final approval to a $1.1 trillion spending bill that will finance the government through September, and unlike the health care legislation, the spending bill had broad bi-partisan support.
Passage of the health care bill completed a remarkable act of political resuscitation, six weeks after House leaders failed to muster the votes to pass an earlier version of their bill, a blow to Mr. Trump and Speaker Paul D. Ryan of Wisconsin.
“We are all breathing a sigh of relief,” Representative Chris Collins, Republican of New York, said. “We’re living up to a campaign promise we made, the Senate made, the president made.”
Democrats vowed to make Republicans pay a high political price for pushing such unpopular legislation. “I have never seen political suicide in my life like I’m seeing today,” Representative Louise M. Slaughter, Democrat of New York, said.
The House bill would eliminate tax penalties for people who go without health insurance. It would roll back state-by-state expansions of Medicaid, which covered millions of low-income Americans.
In place of government-subsidized insurance policies offered exclusively on the Affordable Care Act’s marketplaces, the bill would offer tax credits of $2,000 to $4,000 a year, depending mainly on age. A family could receive up to $14,000 a year in credits. The credits would be reduced for individuals making over $75,000 a year and families making over $150,000.
The nonpartisan Congressional Budget Office said the first version of the bill would trim the federal budget deficit considerably but would also leave 24 million more Americans without health insurance after a decade. Insurance premiums would spike next year before settling lower after a decade.
The vote on Thursday, just before House members were to leave for an 11-day recess, shifts the focus over to the Senate, where a number of Republicans have expressed significant concerns over the House plan, including how it would affect states that expanded Medicaid and whether it would drive up premiums for older people.
Republican senators are certain to face pressure from governors worried about constituents on Medicaid losing their coverage. Republican leaders changed the House bill to woo hard-line conservatives, allowing state governments to roll back required coverage for “essential” services like maternity and emergency care. States could also seek waivers that would let insurers charge higher premiums for customers with pre-existing medical conditions. Those changes could be rejected by moderate Republican senators.
And Democrats are confident that some provisions of the House bill will not comply with special budget rules that Republicans must follow in order to skirt a Senate filibuster.
Republicans have promised for seven years to repeal the health law, under which around 20 million Americans gained health coverage. But they had no consensus on how much of the law should be repealed and had great difficulty devising a comprehensive replacement. Their doubts were reinforced by constituents who said the health law had saved their lives.
Doctors, hospitals and other health care providers joined patient advocacy groups like the American Cancer Society and AARP in opposing the repeal bill.
The House vote on Thursday occurred before the Congressional Budget Office had released a new analysis of the revised bill with its cost and impact. Democrats angrily questioned how Republicans could vote on a bill that would affect millions of people and a large slice of the American economy without knowing the ramifications.
The Republican bill, the American Health Care Act, would make profound changes to Medicaid, the health program for low-income people, ending its status as an open-ended entitlement. States would receive an allotment of federal money for each beneficiary, or, as an alternative, they could take the money in a lump sum as a block grant, with fewer federal requirements. The bill would also repeal many of the taxes imposed by the Affordable Care Act on high-income people, insurers and drug companies, among others.
Many of the defenders of the bill focused not so much on its details but on the shortcomings of the Affordable Care Act.
“Obamacare has hijacked the free market and has taken some Americans’ liberties with it,” Representative Doug Collins, Republican of Georgia, said on the floor, adding that the health law “replaced our doctors with bureaucrats, because that’s what socialized medicine does.”
Mr. Collins said one of the reasons he came to Congress was to “rein in our nation’s bloated, ballooning entitlement system,” and the repeal bill does that, he said, by rolling back the expansion of Medicaid authorized by the law.
Representative Michael C. Burgess, Republican of Texas and chairman of the health subcommittee of the Energy and Commerce Committee, said, “The Affordable Care Act has left the individual market in shambles and has driven insurers away from offering coverage.”
Representative Lloyd Doggett, Democrat of Texas, said Republicans did not know how much the latest version of the bill would cost taxpayers or how many families would lose health coverage. “They know only that the Pied Piper of Trump Tower is playing a tune today, and they must dance,” he said.
“Pathetic,” Representative Jim McGovern, Democrat of Massachusetts, said. “That is the word to describe this process and this bill.” He told Republicans: “You are taking away essential health care protections. You are allowing insurance companies to discriminate against people with pre-existing conditions.”
In truth, Republicans argued, with so many problems afflicting the Affordable Care Act, the status quo is unsustainable, regardless of what Congress does. Mr. Trump pointed to Aetna’s announcement this week that it would no longer offer policies on Virginia’s Affordable Care Act exchange.
“Death spiral!” the president wrote on Twitter.