WASHINGTON - Exultant Senate Democrats pushed President Obama's landmark health-care overhaul past a final procedural hurdle yesterday, setting up a Christmas Eve vote to pass the legislation extending coverage to 30 million Americans.

Democrats voted 60-39 to end a GOP filibuster and move to a final vote today. All 58 Democrats and two independents hung together against unanimous Republican opposition.

It was the 24th day of debate on the 10-year, nearly $1 trillion bill.

"It is now only hours until this Senate will pass meaningful health-care reform," said Finance Committee Chairman Max Baucus, D-Mont.

"It has been a long time coming," Baucus said. "I thank God that I have lived to see this day."

It was the third time that Democrats have put up 60 votes on procedural measures since Monday. Final passage requires just a simple majority so Democrats should triumph easily. It will be a big victory for Obama and the Democrats, although the Senate bill will still have to be reconciled with a House-passed version before Obama could sign a final package.

There are some thorny differences between the two chambers, including stiffer abortion curbs in the House bill and a new government-run insurance plan in the House bill that's not in the Senate version.

The sweeping legislation, crafted over months of laborious negotiations, would dramatically remake the country's health-care system with new requirements for nearly everyone to purchase insurance. The government would provide subsidies to help lower-income people pay for coverage. Unpopular insurance company practices such as denying coverage to people with pre-existing conditions would be banned.

Powerless to stop the bill, Republicans stepped up their attacks, contending that the sweeping bill threatened to harm Medicare and add billions to the deficit.

"Tomorrow the Senate will vote on a bill that makes a bad situation worse," Sen. Charles Grassley, R-Iowa, said on the Senate floor. "This bill slid rapidly down the slippery slope to more and more government control of health care."

The final vote is now set for 7 a.m. today, not 8 a.m. as agreed to earlier in the week. It had originally been scheduled for 7 p.m., but Republicans agreed not to use all their debate time so that they could leave town earlier for the holidays and avoid bad weather looming in the Midwest. Yesterday, senators advanced the vote from 8 a.m. to 7 a.m. today. Sen. Patrick Leahy, D-Vt., suggested moving it up some more and holding it last night, but Republicans didn't agree to that.

The last time that the Senate voted on Christmas Eve was Dec. 24, 1895, on a military-affairs bill concerning employment of former Confederate officers, according to the Senate Historical Office.

Democrats also cast several votes yesterday turning back points of order raised against the bill by Republicans, including one by Sen. John Ensign, R-Nev., questioning the constitutionality of requiring most every American to buy health insurance.

Away from Capitol Hill, special deals on Medicaid obtained by some Democrats - notably Ben Nelson of Nebraska, who provided the crucial 60th vote - continued to provoke grumbling. Under the Senate bill the federal government will pay the entire cost of an expansion of Medicaid in Nebraska, unlike other states, which will have to start picking up a portion of the tab themselves after several years.

In New York, state Senate Republican Leader Dean Skelos sent a letter to the attorney general and the governor urging them to join other states, including South Carolina, that are considering legal challenges over the issues.