The Senate approved the bill 98-2, with Republican Rand Paul of Kentucky and Independent Bernie Sanders of Vermont voting against the measure. The bill, which includes both Russian and Iranian sanctions, now heads to the House, which still needs to pass it before it goes to President Donald Trump's desk.
The measure is widely seen as a rebuke to Trump, as it hits Russia with new sanctions to punish Moscow for its interference in US elections, as well as over Moscow's aggression in Ukraine and Syria.
The bill establishes a review process for Congress to have a say whether the White House eases Russia sanctions. It also establishes new sanctions against those conducting cyberattacks on behalf of the Russian government as well as supplying arms to Syrian President Bashar Assad, and it allows for sanctions to hit Russia's mining, metals, shipping and railways sectors.
"We moved to make the Congress, not the President, the final arbiter of sanctions relief when necessary," Senate Minority Leader Chuck Schumer said. "Any idea of the President that he can lift sanctions on his own for whatever reason are dashed by this legislation."
The Russia sanctions measure was added as an amendment to an Iranian sanctions bill, after a deal was struck between the heads of the Senate Foreign Relations and Banking Committees. The Russia amendment was added to the sanctions bill in a 97-2 vote on Wednesday.
Despite the overwhelming vote, the Russia sanctions package was no sure thing. Senate Foreign Relations Chairman Bob Corker of Tennessee had initially been hesitant to take it up, as the administration had expressed a hope it could improve relations with Moscow.
Secretary of State Rex Tillerson said this week that he was wary of Congress taking actions that could interfere with the administration's efforts to improve relations with Russia.
"What I wouldn't want to do is close the channels off," Tillerson told a Senate committee.
White House spokeswoman Sarah Huckabee Sanders said Thursday that the Trump administration is "committed to existing sanctions against Russia" but is "still reviewing the new Russia sanctions amendment."
"We will keep them in place until Moscow fully honors its commitment to resolve the crisis in Ukraine," Sanders said. "We believe the existing executive branch sanctions regime is the best tool for compelling Russia to fulfill its commitments."
Still, Corker and other Republicans said they expect Trump to sign the bill if it's passed by the House.
"I called over myself yesterday and just shared some thoughts with them. But look, this bill is going to become law," Corker told reporters on Wednesday. "I've had conversations with Tillerson more generally about our relationship with Russia, not about details (of the legislation)."
The Senate also passed two amendments before approving the bill. The first was a technical change that the sanctions would not apply to NASA and commercial space launches, as Russian rocket engines are used for the American Atlas V and Antares rockets.
The second reaffirmed "the strategic importance of Article 5" in NATO, the principle that an attack on one NATO member is an attack on all members of the alliance.
Trump announced at a news conference last week that he would support Article 5
after he failed to mention it in a speech at NATO headquarters last month.