In a stunning rebuke, the Republican-controlled Senate has voted to terminate President Donald Trump's declaration of a national emergency at the US-Mexico border.
The disapproval resolution passed the House last month, so the 59-41 Senate vote will send the measure to the Trump's desk.
Trump has promised to use the first veto of his presidency to strike it down, and Congress does not have the votes to override the veto.
But the Senate vote stood as a rare instance of Republicans breaking with Trump in significant numbers on an issue central to his presidency - the construction of a wall along the southern border.
By declaring a national emergency in order to bypass Congress to get money for his wall, Trump was violating the separation of powers and setting a potentially dangerous precedent, these senators argued.
"It's imperative for the president to honor Congress' constitutional role," Senator Rob Portman, said on the Senate floor as he announced his vote in favor of the disapproval resolution. "A national emergency declaration is a tool to be used cautiously and sparingly."
Republicans who voted with Trump and against the disapproval resolution said the president was acting within his authority under the National Emergencies Act, and taking necessary steps to address a humanitarian and drug crisis at the border that Democrats had ignored.
"There is a crisis at the border and Nancy Pelosi and Chuck Schumer have prevented a solution," said Senator Cory Gardner, naming the House speaker and Senate minority leader. "It should never have come to this, but in the absence of congressional action, the President did what Nancy Pelosi and Chuck Schumer refused to do."
Many GOP senators agonized at length before deciding how to vote, with significant numbers of them - including Portman and Gardner, who is up for re-election next year - waiting until Thursday to announce their positions.
Senator Thom Tillis, another senator up for re-election in a politically divided state, had announced last month that he would vote for the disapproval resolution. He wrote an opinion piece in The Washington Post at the time arguing there would be "no intellectual honesty" in supporting executive overreach by Trump that he had opposed under President Barack Obama.
But today Tillis flipped and cast his vote with the President, saying he was reassured by indications that Trump would support changes to the National Emergencies Act itself, to rein in presidential powers going forward.
Tillis' flip-flop highlighted the political pressure Republicans felt over potentially crossing the president. In the end only one Republican who is up for re-election next year Susan Collins, R-Maine, voted for the disapproval resolution.
Thursday's vote followed numerous failed efforts at compromise by vacillating GOP senators, including a dramatic incident Wednesday evening where a trio of GOP senators -- Senators Lindsey Graham, Ted Cruz, and Ben Sasse - showed up nearly unannounced at the White House, interrupting Trump at dinner in a last-ditch effort to craft a compromise.
Their efforts failed, and Graham, Cruz and Sasse all ended up voting against the disapproval resolution.
"I said thank you for meeting with us. Sorry we ruined your dinner. And again, if it'd been me, I would have kicked us out after about five minutes," Graham said later.
Ahead of the vote, Trump took to Twitter to goad his critics and insist that defectors would be siding with Pelosi.
"A vote for today's resolution by Republican Senators is a vote for Nancy Pelosi, Crime, and the Open Border Democrats!" Trump wrote.
The president said he would support GOP efforts to update the National Emergencies Act at a later date - something that's been under discussion as a way to rein in presidential powers going forward - "but today's issue is BORDER SECURITY and Crime!!! Don't vote with Pelosi!"
Pelosi herself told reporters: "The Senate will hopefully vote for the Constitution of the United States to uphold the oath of office that we all take by voting to reject the president's measure that does violence on the Constitution. . . . We'll then send the bill to the president."
Concern among GOP senators has focused on Trump's use of the National Emergencies Act to grab $3.6 billion appropriated by Congress for military construction projects nationwide - and use it to build barriers along the border instead.
Graham declined to specify what exactly was discussed when he and the others showed up to interrupt Trump's dinner Wednesday night, but said it focused on satisfying those concerns.
The attempted last-minute intervention by Graham and the others was just the latest attempt by Republicans to find some kind of compromise, as they choose between siding with Trump or crossing him on Thursday's vote. But Trump repeatedly shot down the GOP's attempts at dealmaking, calling Sen. Mike Lee, R-Utah, during a private GOP lunch Wednesday to reject a proposal to curtail presidential powers under the National Emergencies Act.
Shortly after that, Lee announced he would be voting for the disapproval resolution.
The vote on the disapproval resolution came a day after a Senate vote to end US support for the Saudi-led war in Yemen, marking unusual twin rebukes from a Senate that has mostly bowed to Trump's wishes.
Schumer and Senate Majority Leader Mitch McConnell, R-Ky., offered contrasting takes on the Senate floor Thursday morning about what is at stake.
"This is not a normal vote," Schumer said. "This will be a vote about the very nature of our constitution and the separation of powers."
But McConnell argued that Trump was acting well within his powers and consistently with previous invocations of the National Emergencies Act.
"Let's not lose sight of the particular question that's before us later today, whether the facts tell us there's truly a humanitarian and security crisis on our Southern border and whether the Senate, for some reason, feels this particular emergency on our own border does not rise to the other national emergencies current in effect," McConnell said.
- With AP