The US House of Representatives narrowly endorsed the biggest healthcare overhaul in decades, giving President Barack Obama a crucial victory in a battle that now moves to the Senate.

By a 220-215 vote, including the support of one Republican, the House backed a bill that would expand coverage to nearly all Americans and bar insurance practices such as refusing to cover people with pre-existing conditions.

But in the Senate, work on a healthcare bill has stalled for weeks as Democratic leader Harry Reid searches for an approach that can win the 60 votes he needs.

Any differences between the Senate and House bills ultimately will have to be reconciled, and a final bill passed again by both before going to Mr Obama for his signature.

House Democrats cheered and hugged when the 218th vote was recorded, and again when House Speaker Nancy Pelosi pounded the gavel and announced the results.

Most Republicans criticized the measure's $1 trillion price tag, new taxes on the wealthy and what they said was excessive government interference in the private health sector.

‘Thanks to the hard work of the House, we are just two steps away from achieving health insurance reform in America. Now the United States Senate must follow suit and pass its version of the legislation. I am absolutely confident it will,’ Mr Obama said in a statement after the vote.

The overhaul would spark the biggest changes in the $2.5 trillion US healthcare system since the creation of the Medicare government health program for the elderly in 1965.

The vote followed days of heavy lobbying of undecided Democrats by Mr Obama, his top aides and House leaders.

The narrow victory was clinched early yesterday by a deal designed to mollify Democratic opponents of abortion rights.