The US Senate has voted in favour of Barack Obama’s $787bn (Ã‚Â£548bn) economic stimulus plan – clearing the way for it to be signed into law.
The vote came hours after the House of Representatives passed the measure without Republican backing.
Mr Obama has said the plan – a package of tax cuts and spending – will “save or create more than 3.5 million jobs”.
Republicans argue the tax cuts are insufficient, and that the economy will be saddled with debt for years to come.
Members of both houses of Congress reached a deal over the content of the stimulus package on Wednesday.
The BBC’s Kevin Connolly in Washington says the first set-piece drama of the Obama era ended in a comfortable but not entirely unqualified victory for the president, who had hoped for more bipartisan support.
All 176 Republicans and seven Democrats voted against the revised package in the House. It was backed by 246 House Democrats.
In the Senate just three Republicans voted for the package.
The rebel votes were however enough under Congress rules to stop the Republican Party using blocking tactics to delay the stimulus plan, and it passed 60-38.
‘Shot in the arm’
The approved version of the plan is split into 36% for tax cuts and 64% percent in spending and money for social programmes.
Running to more than 1,000 pages, it includes new road building, cash to pay police in hard-up cities, and tax breaks for consumers buying houses and cars.
The colossal package is all to be funded with borrowed money.
Republicans had insisted on larger tax cuts instead of big spending programmes.
We have a once-in-a-generation chance to act boldly
US President Barack Obama
Republican Senate minority leader Mitch McConnell said: “This isn’t Monopoly money. It’s real. It adds up, and it has to be paid back, by our children and by their children.”
The Democratic leader of the Senate, Harry Reid, praised the three Republicans who had voted for the bill and said it was the most important piece of legislation he had worked on.
“The country is in trouble and we’re so fortunate we were able to get it passed,” he said.
“It’s going to give this country a shot in the arm.”
Earlier, Mr Obama had said that in the longer term the government needed to rein in spending, and that “we are going to have to once again live within our means”.
The president told members of the Business Council in Washington that the package was “only the beginning of what I think all of you understand is going to be a long and difficult process of turning our economy around.”
“We have a once-in-a-generation chance to act boldly, and turn adversity into opportunity, and to use this crisis as a chance to transform our economy for the twenty-first century,” Mr Obama said.
Among the measures in the approved package is a “Buy American” clause that had caused alarm among US trading partners.
The EU and Canada said that provisions favouring American-produced materials for government projects risked provoking retaliatory protectionist measures.
In the face of this reaction, the clause was softened to a version requiring the government not to violate trade agreements.
Last week, the House had approved an earlier $825bn version of the package without any Republican support.
The Senate voted to approve a different $838bn version on Tuesday, with few Republicans opting to back it.
The two versions had to be reconciled in a joint House-Senate committee before facing final votes in the two chambers.
President Obama increased the pressure on Congress this week, saying he wanted the bill on his desk ready to sign by the weekend.