The House voted Thursday to send Ukraine billions of dollars in new military support and hit Russia with fresh sanctions — a direct rebuke of President Trump that his own party’s leaders fought to stop and lost.

The final tally on the Ukraine Support Act was 226–195. Eighteen Republicans crossed the aisle to join nearly every Democrat, defying both Trump and Speaker Mike Johnson, who had urged his members to vote no. To get the bill to the floor at all, its backers had to reach for a procedural weapon the House majority almost never lets succeed: a discharge petition that pulled the measure out of leadership’s hands entirely.

It is the first major pro-Ukraine bill to clear a chamber of Congress since Trump returned to office, and it passed not because Republican leaders allowed it but because enough of their members refused to follow them. Whether it becomes law is a different question — the bill now faces a Senate filibuster and an all-but-certain presidential veto. But the vote itself is the clearest sign yet that Trump’s grip on Republican foreign policy has limits inside his own conference.

The maneuver leadership couldn’t stop

Under normal House rules, the Speaker decides what reaches the floor. A bill the leadership opposes simply never gets a vote. The discharge petition is the rare exception: if an outright majority of the House — 218 members — signs it, they can force a bill onto the floor over the Speaker’s objection.

That is exactly what happened here. Backers gathered the 218 signatures needed, and the House then cleared the procedural rule 218–204 before moving to final passage. Discharge petitions almost never reach the threshold, because signing one is a public act of defiance against a member’s own leadership. This one did, which is why the maneuver — not just the policy — is what makes Thursday’s vote unusual.

The bill’s author, Rep. Gregory Meeks of New York, the top Democrat on the House Foreign Affairs Committee, framed the stakes in moral terms on the floor. “We all want this war to end. The question is how,” he said. “Will we abandon Ukraine and force it into a terrible deal? That is what Vladimir Putin is counting on.”

The procedural route mattered for another reason: it let rank-and-file Republicans support Ukraine without their leaders ever having to schedule the vote. It is the same dynamic that produced the House’s bipartisan war-powers vote on Iran earlier this term — a bloc of Republicans willing to break with the White House on a specific foreign-policy question while leadership looked the other way.

What the bill actually does

The Ukraine Support Act, formally H.R. 2913, is built around military financing rather than direct grants. It authorizes up to $8 billion in loans for Kyiv through the Foreign Military Financing program and extends the Ukraine Security Assistance Initiative — the Pentagon’s main authority for arming Ukraine — through 2027. It also provides more than $1 billion in additional security and reconstruction aid.

On the Russia side, the measure tightens sanctions on the country’s oil and gas sector, imposes stricter restrictions on financial institutions that keep doing business with Moscow, and — according to ABC News — eliminates a sanctions waiver Trump had approved earlier this year. Taken together, the bill is an attempt to lock in U.S. support for Ukraine and pressure on Russia before any negotiated settlement, rather than after.

That timing is the political core of the fight. Trump has pushed for a rapid end to the war on terms Kyiv and many European governments view as favorable to Moscow, an approach this publication examined when the administration leaned on Ukraine to accept a ceasefire framework. The bill’s supporters want to change the leverage in that negotiation; opponents say it undercuts the president while he is trying to broker peace.

The Republicans who crossed, and why

The 18 Republicans who voted yes were not a random cross-section. Several have long records of supporting Ukraine and represent districts where that position carries little political cost. Rep. Don Bacon of Nebraska, a retired Air Force brigadier general, cast the vote in stark terms. “Are we going to stand with good or are we going to stand with evil?” he said. “That’s what this is about tonight.”

Rep. Brian Fitzpatrick of Pennsylvania, a former FBI agent who has co-led bipartisan Ukraine efforts, signed the discharge petition and voted for passage. Rep. Michael McCaul of Texas, the former chairman of the Foreign Affairs Committee, said the result carried a message beyond Washington. “Today’s bipartisan vote sends a strong message to Ukraine that we support them and a clear message to Putin that we stand against Russian tyranny,” he said.

The defections were not entirely one-directional. One Democrat, Rep. Ilhan Omar of Minnesota, voted against the package. But the lopsided arithmetic — nearly the entire Democratic caucus plus a sturdy bloc of Republicans — gave the bill a margin that leadership’s whip operation could not erase.

Republican leaders did not hide their opposition. Johnson urged members to reject the bill, and House Majority Leader Steve Scalise pointed to what he described as good-faith negotiations underway between members of Congress and the White House — the leadership argument being that a confrontational bill would complicate Trump’s diplomacy rather than strengthen it.

What happens next

Passage in the House is the easy part. The bill now goes to the Senate, where it needs 60 votes to overcome a filibuster — a threshold its own backers concede it is unlikely to reach. Fitzpatrick was blunt about the goal. “It’s probably not going to get 60 votes in the Senate, but it’s going to hopefully force the Senate to address the issue,” he said.

Even if it somehow cleared the Senate, it would land on the desk of a president who has spent months arguing against exactly this kind of open-ended commitment. Trump is widely expected to veto it, and there is no indication the votes exist in either chamber to override him. In practical terms, the Ukraine Support Act is far more likely to remain a statement than to become law.

But statements from Congress have their own weight, especially when they come from a president’s own party. The vote forces every senator to take a position. It signals to Kyiv and to European capitals — already moving on their own, as with the European Union’s multibillion-euro loan package for Ukraine — that American support has not collapsed into a single man’s preferences. And it puts a number on Republican dissent: at least 18 members of the House were willing to be counted against their president and their Speaker on the same night.

For two months, the story of Ukraine policy in Washington has been Trump setting the terms and his party falling in line. On Thursday, for the length of one roll call, that stopped being true.

Sources 6 cited · 2 primary

  1. Roll Call 207, H.R. 2913, 119th Congress, 2nd Session (Final Passage)primaryOffice of the Clerk, U.S. House of RepresentativesJun 4, 2026
  2. H.R.2913 — Ukraine Support Act, 119th Congress (2025–2026)primaryCongress.gov / Library of CongressJun 4, 2026
  3. House passes bill to provide more Ukraine aid and impose new sanctions on RussiaPBS NewsHour / Associated PressJun 4, 2026
  4. Several Republicans vote with Democrats to pass Ukraine aid, Russia sanctions packageABC NewsJun 4, 2026
  5. House moves forward on new aid for Ukraine package, spurning TrumpThe HillJun 4, 2026
  6. House passes Ukraine aid bill in another GOP rebuke of Trump's foreign policyNBC NewsJun 4, 2026

American Courant cites its sources and links to primary documents where they exist. How we report →