Democrat Conor Lamb and Republican Rick Saccone are locked in a neck and neck battle to decide who will represent Pennsylvania's 18th Congressional District.
After a long night of drama, the race is still too close to call. Lamb holds a slight lead over Saccone with 100% of the Election Day vote tallied, but absentee and provisional ballots are still being counted. It would be an significant uphill climb for Saccone to overtake Lamb.
Lamb claimed victory in a speech to his supporters Tuesday night.
"It took a little longer than we thought, but we did it," he said. "You did it."
Saccone, however, said he isn't giving up.
"We are still fighting the fight. It's not over yet," Saccone told his supporters more than an hour earlier.
It's a bad sign for Republicans that the 18th District race is razor-tight. President Donald Trump won there by 20 percentage points in 2016, and GOP groups pumped $10.7 million into a months-long effort to stave off an embarrassing loss there. Lamb's performance is ominous for the GOP as it heads into November's midterm elections.
Even a narrow Lamb win would signal that the GOP is in danger even in districts considered safe for Republicans, raising Democratic hopes of capturing the House and maybe the Senate in November. A Republican loss could lead to more House members retiring rather than running into headwinds in re-election bids. Democrats, meanwhile, would look to replicate Lamb's success in working-class districts with similar demographics.
With no declared winner, both parties took a stab at spinning the available results. The Democratic Congressional Campaign Committee claimed victory for Lamb in a statement Tuesday night, while the National Republican Congressional Committee said it was "confident" Saccone would win.
Earlier in the evening, before it became clear the results would be so close, several Republican officials told CNN they were expecting Saccone to lose. Party officials were placing the blame squarely on Saccone's campaign but also on Trump's Saturday rally for the candidate, which some Republicans believe helped drive up Democratic turnout.
When the race tightened, that outlook improved, with one GOP source telling CNN's Jim Acosta: "This isn't a blowout -- for now, we'll happily take it."
A Republican official told CNN that Trump, who was raising money with GOP donors in Beverly Hills, California, has been asking for updates throughout the evening and is pleasantly surprised by the narrow margin.
Lamb and Saccone were running to replace former GOP Rep. Tim Murphy, who resigned after allegedly urging a woman he was having an affair with to have an abortion.
The stakes are largely psychological: Pennsylvania's Supreme Court recently ruled that its congressional districts were gerrymandered and redrew the map -- meaning both candidates would face choices about where to run if they want to be on the ballot in November.
Manu Raju, Jeff Zeleny, and Jim Acosta contributed to this report.