U.S. President Barack Obama delivers a final appeal to support health-care reform at George Mason University in Virginia on Friday. ((Pablo Martinez Monsivais/Associated Press))

U.S. President Barack Obama made a final push to rally support before this weekend's vote on health-care legislation, charging that the country cannot afford to miss this historic opportunity.

In an impassioned and fiery campaign-like speech, the president, speaking before several thousand at George Mason University in Virginia, implored Americans to back his 10-year, $940-billion legislation.

The outcome of Sunday's expected vote in the House hinges on a handful of wavering Democrats.

"The time for reform is now. We have waited long enough. And in just a few days, a century-long struggle will culminate in a historic vote," Obama said.

Obama blasted insurance companies, saying that if the vote fails, they will "continue to run amok" and hike up premiums.

"Are we going to let the special interests win once again or are we going make this vote a victory for the American people?" he asked.

Obama said the debate is not only about the cost of health care but about the "character of our country."

He rejected those who try to portray the bill as "radical change," insisting that it's "common sense reform" and a "patient's bill of rights on steroids."

He said it would end the "worst practices of insurance companies" and that if passed, thousands of Americans with pre-existing conditions will be able to purchase health insurance.

As well, insurance companies would be banned from dropping coverage of those who get sick, he said.

Obama said the package would bring down the cost of health care for families, businesses and the government, and would reduce the deficit by more than $1 trillion over the next two decades.

"Not only can we afford to do this, we can't afford not to do this," he said.

Obama postponed an Asia trip that was set to begin Sunday, allowing him to stay in town for the House vote and action next week in the Senate.

"I know this will be a tough vote. I know that everybody is counting votes right now in Washington," he said. "We are going to do something historic this weekend.… We are going to fix health care in America."

House majority leader Steny Hoyer acknowledged Friday that the leadership still lacks enough votes to win the vote.

Representative Bart Stupak, a Michigan Democrat who has led a dozen House Democrats in opposing the bill because of the abortion issue, reiterated Friday that his group may vote no when the final vote comes.

The bill would expand health care to an estimated 32 million uninsured. Beginning in 2014, most Americans would be required for the first time to purchase insurance or face penalties.

With files from The Associated Press