With a copy of the stimulus legislation seen on the podium, House Minority Leader John Boehner speaks at a news conference on Friday in Washington. ((Lauren Victoria Burke/Associated Press))

The U.S. Congress has voted in favour of President Barack Obama's economic stimulus package, putting it one step closer to being signed into law.

The Senate voted 60-38 in favour of the $787 billion US stimulus bill late Friday night. Earlier in the day, the House of Representatives passed the legislation in a 246-183 vote.

Republican opposition in the House was unanimous while three Republican moderates voted in favour of the bill in the Senate.

At least 60 votes are needed to pass legislation through the Senate quickly.

Obama has made the package the centrepiece of his plan for economic recovery in the United States by maintaining or creating 3.5 million jobs.

The package includes help for victims of the recession in the form of expanded unemployment benefits, food stamps, health-care coverage and transportation projects.

A tax cut for low- and middle-income taxpayers is also contained in the package.

Billions of dollars will be funnelled to state governments for transportation projects, such as road and bridge construction, and mass transit.

Bill about spending, not jobs: critics

The bill is a compromise based on similar legislation already debated and passed in both chambers.

The compromise, which was reached earlier in the week, cut billions from the Senate version of the bill, which was an $838-billion US package. Officials said the cuts were made as a concession to moderates in Congress who want to hold down spending.

Republicans have resisted the package in both the House and the Senate, arguing that the legislation is merely expanding big government spending.

"The bill that was about jobs, jobs, jobs has turned into a bill that's about spending, spending, spending," said House Republican Leader John Boehner on Friday, tossing the 1,071-page document to the floor in Congress.

'Buy American' clause stays

The bill still contains the "Buy American" policy that spurred international concerns of protectionism that could trigger trade wars.

The provision requires public works projects receiving money from the federal stimulus package to use U.S.-made iron, steel and manufactured goods.

After fierce pressure from Canada, the European Union and several prominent U.S. corporations, lawmakers in Washington added a caveat to the provision to clarify "Buy American" must not violate international trade agreements.

The change is aimed at calming countries that are members of NAFTA and the World Trade Organization, but the U.S. Congress stopped short of removing the clause from the bill.

U.S. labour groups that pushed hard for inclusion of the measure have argued that its main purpose is to ensure that U.S. Treasury dollars are used to the fullest extent to support domestic job creation.

But industry and business groups have criticized the clause, arguing that it might affect trade with other countries.

The president is expected to sign the bill into law as early as Monday. He had said repeatedly he wanted the legislation on his desk by mid-February.

With files from the Associated Press