The bill, which was approved 66-32, authorizes an additional $32.8 billion over the next 4 1/2 years for the State Children's Health Insurance Program.
"As the worsening economy causes families to lose their jobs and health insurance, it is vital that we redouble our efforts to ensure that every child in America has access to affordable health care," said President Obama. "That is why I am pleased that the Senate has joined the House in passing bipartisan legislation to provide health insurance to children whose families have been hurt most by this downturn."
"Providing health care to more than ten million children through the Children's Health Insurance Program will serve as a down payment on my commitment to ensure that every American has access to quality, affordable health care," he added.
Even with the added spending, an estimated 5 million children still would be without health insurance. During his election campaign, Obama called for requiring all children to have health coverage.
"When President Obama signs this bill, the real victory will belong not to politicians, but to kids," said Sen. Max Baucus, D-Mont.
The bill pays for expanding SCHIP by increasing the federal excise tax on cigarettes from 39 cents to $1 a pack. Opponents argued that the tax would hit the poor the hardest.
The Democratic majority turned back Republican amendments to limit expansion of the program. Among the failed amendments were a prohibition on using federal money to cover children of newly arrived legal immigrants and a stricter income limit in some states for participating families.
Current law requires a five-year waiting period before legal immigrants become eligible for coverage under Medicaid and SCHIP. Democrats said that removing the ban would help children before small health problems became big ones.
"It is likely many of these children are already U.S. citizens and many will become U.S citizens, and their being unhealthy doesn't make sense for that family, and it certainly does not make sense for our nation." said Sen. Richard Durbin, D-Ill.
Support for expanding SCHIP has had bipartisan backing. In 2007, former President bills to expand the program. The Senate voted to override Bush, but the House fell about 15 votes short of an override.
Scores of interest groups have lined up in support of more money for SCHIP, including trade groups representing insurers, hospitals, doctors, unions and the pharmaceutical industry.
Some Republican senators complained that Democrats had worked closely with many of them on SCHIP in the past but had ignored them this year when crafting the bill.
"I think we could have had 95 votes," said Sen. Orrin Hatch, R-Utah. "That would have sent a tremendous, tremendous message that hasn't been sent around here for a long time.
Nine Republicans joined 57 Democrats in voting for the bill. No Democrat voted against it.
More than 7 million children were enrolled in SCHIP at some point in 2008. The program was created more than a decade ago as a way to provide health care to children in families with incomes too high to quality for Medicaid but too low to afford private coverage. Federal funding for SCHIP is set to expire March 31 unless Congress acts.
The House already has approved a bill to expand SCHIP. It's comparable to the Senate bill, except it included a provision opposed by physicians and supported by the influential American Hospital Association. That provision would have prevented new physician-owned hospitals from opening, but it's not part of the Senate bill.
The House will vote on the Senate bill and then send it on to the president for his signature.
Republicans said they are fearful that Democrats are using SCHIP to increase the government's role in providing health care. They said about 2.4 million children who otherwise could get private insurance will get government-sponsored coverage instead.
Democrats responded to those concerns by requiring any state covering families earning more than three times the federal poverty level, or $66,150 for a family of four, to be paid at Medicaid levels rather than the higher SCHIP level.
But the bill allowed an exception for New Jersey and New York. Lawmakers said a family of four in New York could potentially qualify for SCHIP even if the family's income came to about $88,000.
"These are certainly not low-income families," said Sen. Jim Bunning, R-Ky., who unsuccessfully tried to remove the exemption for the two states.