The final bill includes $400 billion in one-time payments of $1,400 to most Americans, $300 a week in extended jobless benefits for the 9.5 million people thrown out of work in the crisis, and $350 billion in aid to state and local governments that have seen the pandemic blow a hole in their budgets.
The Senate voted 50-49, with no Republicans voting in favour, on what would be one of the largest stimulus packages in US history.
Several Republicans left the chamber immediately after the vote, while Senator Bernie Sanders fist-bumped Senate Majority Leader Chuck Schumer.
The fight is not over as the bill needs to return to the House of Representatives, which approved a slightly different version a week earlier.
The standoff within the Democratic party over the jobless benefits and the all-night effort by Republicans to amend a bill that polls show is popular with voters illustrated the difficulty that Biden will face in pushing other policies through a Congress that Democrats control by the narrowest of majorities. The bill is a priority for Biden as the country battles a pandemic that has killed more than 520,000 Americans.
The chamber set a record in its longest single vote in the modern era — 11 hours and 50 minutes — as Democrats negotiated a compromise on unemployment benefits to satisfy centrists like Senator Joe Manchin, who often walks a delicate tightrope as a Democrat representing a state, West Virginia, that overwhelmingly supported Republican former President Donald Trump in the November election.
The extended unemployment payments, which are to be paid out on top of state jobless benefits, proved to be the most contentious part of the bill. The House bill had set the supplemental benefit at $400 a week, but Senate Democrats finally agreed to knock that down to $300.
The House bill also featured a measure to more than double the minimum wage to $15 per hour, which the Senate also rejected.
Moderate Democrats feared that the higher jobless benefits and minimum wage hike would overheat the economy and hurt businesses in rural states.
Senate Democrats used a process called reconciliation to pass the measure with a simple majority rather than the 60 of 100 votes normally required under the chamber’s rules.
It was unclear whether Democrats will try to use that manoeuvre on other policy goals such as legislation dealing with climate change and immigration.
One Republican, Daniel Sullivan of Alaska, left Washington on Friday night for a family funeral, meaning that Democrats did not need Vice President Kamala Harris’ tie-breaking vote in the normally 50-50 chamber.
Republicans have broadly supported previous stimulus packages to fight the virus and revive the economy. But with Democrats in charge of the White House and both chambers of Congress, they criticised this bill as too expensive.
The country has yet to replace 9.5 million jobs lost since last year and the White House says it could take years to do so.
Washington got unexpected good news on Friday after data showed that US employment surged in February, adding 379,000 jobs, significantly higher than many economists had expected.