The Senate overwhelmingly passed a bill Thursday that would give Congress a voice in any nuclear negotiations between President Obama, world powers and Iran.
The measure was approved 98-1, with freshman Sen. Tom Cotton, R-Ark., as the lone holdout.
The bipartisan measure, which originally received massive pushback from the White House before a compromise was struck, gives Congress the ability to review and reject any final deal with Iran over its nuclear program.
Under the agreement framework, Iran would roll back its nuclear program in exchange for relief from crippling economic penalties.
Cotton wants the administration to submit any agreement to the Senate as a treaty. Under the Constitution, that would require approval of two-thirds of the Senate.
The House is expected to vote next week on the measure.
House Speaker John Boehner, R-Ohio, said in a statement moments after the vote that the "goal is to stop a bad agreement that could pave the way to a nuclear-armed Iran, set off a regional nuclear arms race, and strengthen and legitimize the government of Iran."
Even if Congress rejects his final nuclear deal with Tehran, however, Obama could use his executive pen to offer a hefty portion of sanctions relief on his own. He could take unilateral actions that -- when coupled with European and U.N. sanctions relief -- would allow a deal to be implemented.
The U.S. and other nations negotiating with Tehran have long suspected that Iran's nuclear program is secretly aimed at atomic weapons capability. Tehran insists the program is entirely devoted to civilian purposes.
The talks resume next week in Vienna, with a target date of June 30 for a final agreement.
Senate Majority Leader Mitch McConnell, R-Ky., said the bill "offers the best chance for our constituents through the Congress they elect to weigh in on the White House negotiations with Iran."
Added Sen. Bob Corker, R-Tenn., chairman of the Foreign Relations Committee: "No bill. No review."
The legislation would bar Obama from waiving congressional sanctions for at least 30 days while lawmakers examine any final deal. The bill would stipulate that if senators disapprove of the deal, Obama would lose his current power to waive certain economic penalties Congress has imposed on Iran.
The bill would require Congress to pass a resolution of disapproval to reject the deal, an action that Obama almost certainly would veto. Congress then would have to muster votes from two-thirds of each chamber to override the veto.
In the House, about 150 Democrats -- enough to sustain a veto -- wrote the president to express their strong support for the nuclear negotiations with Iran.
"We urge you to stay the course," the letter said. "We must allow our negotiating team the space and time necessary to build on the progress made in the political framework and turn it into a long-term, verifiable agreement."
The bill took a roller coaster ride to passage.
Obama first threatened to veto it. Then he said he would sign it if the measure was free of amendments the White House believed would make continued negotiations with Tehran virtually impossible.
It survived a blow from Israeli Prime Minister Benjamin Netanyahu, who stood before Congress in March and warned the U.S. that an emerging nuclear agreement would pave Iran's path to atomic weapons.
"It is a very bad deal. We are better off without it," he said in a speech arranged by Republicans. His address aggravated strained relations with Obama and gambled with the long-standing bipartisan congressional support for Israel.
A few days later, Cotton and 46 of his GOP colleagues wrote a letter warning Iranian leaders that any deal with Obama could expire when he leaves office in January 2017.
Senate Democratic leader Harry Reid of Nevada accused the GOP of trying to undermine the commander in chief while empowering the ayatollahs who lead Iran.
In April, the Senate Foreign Relations Committee passed a compromise bill on a 19-0 vote. Obama withdrew his veto threat.
But Republicans were not done trying to change the bill, drawing up more than 60 amendments.
One, from Cotton, would have made any deal contingent on Iran's halting its support of terrorist activities that threaten Americans. Cotton used an unusual Senate procedural move to get his amendment heard.
McConnell did not want to see the bill end in tatters, so he acted to end the amendment process and have votes on the legislation.
"We should have insisted on amendments to put real teeth in this bill," said Republican Sen. Ted Cruz of Texas, who is running for president. "Ultimately, I voted yes on final passage because it may delay, slightly, President Obama's ability to lift the Iran sanctions and it ensures we will have a congressional debate on the merits of the Iran deal."
Another 2016 candidate, Sen. Sen. Marco Rubio, R-Fla., said the bill puts Congress in a better position than having no say.
"At a minimum, at least it creates a process whereby the American people through their representatives can debate an issue of extraordinary importance," Rubio said.
Fox News' Kara Rowland and The Associated Press contributed to this report.