WASHINGTON — House Democrats approved a far-reaching overhaul of the nation’s health system on Sunday, voting over unanimous Republican opposition to provide medical coverage to tens of millions of uninsured Americans after an epic political battle that could define the differences between the parties for years.

With the 219-to-212 vote, the House gave final approval to legislation passed by the Senate on Christmas Eve. Thirty-four Democrats joined Republicans in voting against the bill. The vote sent the measure to President Obama, whose yearlong push for the legislation has been the centerpiece of his agenda and a test of his political power.

After approving the bill, the House adopted a package of changes to it by a vote of 220 to 211. That package — agreed to in negotiations among House and Senate Democrats and the White House — now goes to the Senate for action as soon as this week. It would be the final step in a bitter legislative fight that has highlighted the nation’s deep partisan and ideological divisions.

On a sun-splashed day outside the Capitol, protesters, urged on by House Republicans, chanted “Kill the bill” and waved yellow flags declaring “Don’t Tread on Me.” They carried signs saying “Doctors, Not Dictators.”