The Senate voted 86-11 in favour of the package of military, economic and humanitarian assistance, by far the largest US aid package for Ukraine to date. All 11 no votes were from Republicans.
"This is a large package, and it will meet the large needs of the Ukrainian people as they fight for their survival," Democratic Senate Majority Leader Chuck Schumer said, urging support for the emergency supplemental spending bill before the vote.
"By passing this emergency aid, the Senate can now say to the Ukrainian people: help is on the way. Real help. Significant help. Help that could make sure that the Ukrainians are victorious," Schumer said.
The House of Representatives passed the spending bill on May 10, also with every "no" vote from Republicans. It stalled in the Senate after Republican Senator Rand Paul refused to allow a quick vote. Biden's fellow Democrats narrowly control both the House and Senate, but Senate rules require unanimous consent to move quickly to a final vote on most legislation.
Secretary of State Antony Blinken and Defence Secretary Lloyd Austin had urged lawmakers to work quickly, telling congressional leaders in a letter that the military had enough funds to send weapons to Kyiv only until Thursday, May 19.
When Biden signs the supplemental spending bill into law, it will bring the total amount of US aid approved for Ukraine to well over $50 billion since the Russian invasion began on Feb 24.
The package includes $6 billion for security assistance, including training, equipment, weapons and support; $8.7 billion to replenish stocks of US equipment sent to Ukraine, and $3.9 billion for European Command operations.
In addition, the legislation authorizes a further $11 billion in Presidential Drawdown Authority, which allows Biden to authorize the transfer of articles and services from US stocks without congressional approval in response to an emergency.
It also includes $5 billion to address food insecurity globally due to the conflict and nearly $9 billion for an economic support fund for Ukraine.
The war has killed thousands of civilians, forced millions of Ukrainians from their homes and reduced cities to rubble. Moscow has little to show for it beyond a strip of territory in the south and marginal gains in the east.