It was a primary season buffeted by last-minute curveballs — a stroke, a last-minute surge from an outsider candidate, GOP panicking — but ultimately, there were few big election night surprises for Pennsylvania.
One big statewide race remains too close to call. But in the commonwealth’s other two contested primaries, candidates who had been ahead in the polls cruised to decisive victories.
Here’s where the races all stand, and what the results could mean for the general election.
The Republican U.S. Senate primary
Going into primary night, this was the race that looked tightest: a three-way contest between wealthy, super PAC-backed big-spenders Mehmet Oz and Dave McCormick, and fringe insurgent Kathy Barnette, who ran a grassroots campaign on a shoestring budget.
As results rolled in, it became clear that Barnette’s late polling bump wouldn’t translate to a win. But at around midnight on election night, the margin between Oz and McCormick remained razor-thin.
If a race in Pennsylvania ends with candidates within 0.5% of one another, they go to an automatic recount. Ballots still need to be tabulated around the commonwealth, but it appears the two leading candidates are well within the recount margin. It could be days — or even weeks — until a result is final.
The Democratic U.S. Senate primary
Whoever ends up winning the Senate GOP race will go up against Lt. Gov. John Fetterman.
Fetterman had a resounding victory in the Democratic primary, beating Pittsburgh-area U.S. Rep. Conor Lamb and Philadelphia state Rep. Malcolm Kenyatta in every single county.
It was an especially notable result for a candidate whose political strategy has, until now, been seen as dubious by many party insiders: Fetterman has tried to make the case that he can win statewide by capturing typically liberal urban and suburban voters, as well as rural voters in places where Donald Trump did well.
He also eschewed the endorsements that many candidates see as crucial in contested primaries. Lamb and Kenyatta both far outstripped him in backing from elected officials and political groups, and Lamb also had support from establishment PACs.
Ultimately, none of that mattered. Fetterman has statewide name recognition and a robust network of grassroots donors — he easily outstripped other candidates in fundraising with mostly small donations.
He was dealt a blow late in the primary when he suffered a stroke, and missed his own campaign celebration party while recovering from surgery to implant a pacemaker. But his campaign says he should make a full recovery, and expects to return to the trail for the general election.
The Republican gubernatorial primary
Many GOP insiders’ worst fear came true in the GOP primary: Pennsylvania state Sen. Doug Mastriano easily won the crowded race for governor.
A retired Army colonel, Mastriano has risen to prominence espousing far-right views directly to a homegrown network of online supporters. He’s also known for his support of the lie that widespread election fraud led to former President Donald Trump’s loss in 2020. For that, Mastriano received Trump’s endorsement.
The lawmaker from south-central Pennsylvania campaigned using a mix of standby Republican positions like lowering taxes and publicly funding private schools, as well as more extreme stances on issues like abortion. Mastriano supports banning the procedure after six weeks and introduced a bill to that effect in the state Senate.
As Mastriano emerged as the clear leader in the race in the final weeks of the campaign, many Republican elected officials and other party establishment figures began to worry privately, then publicly, that he would be too fringe to beat Democratic gubernatorial nominee Josh Shapiro in the general election. A late attempt to coalesce support around former congressman Lou Barletta was ineffective, however.
As Mastriano was declared the winner and concessions rolled in, there was little sign that GOP insiders would do anything but support him.
The Democratic gubernatorial primary
In the least surprising result of the night, Pennsylvania Democrats officially handed the nomination for governor to second-term state Attorney General Josh Shapiro.
He was unopposed for the Democratic nomination. The incumbent, Democratic Gov. Tom Wolf is term-limited.
Shapiro enters the general election with a huge cash advantage, and the security of knowing he’s facing his preferred opponent. In the late days of the primary, Shapiro’s campaign began funding its first ad — an attack on Mastriano that actually read as a checklist for why Trump-aligned GOP voters should support him.
When Mastriano’s win was formalized, Shapiro issued a statement calling him an “extremist,” and highlighting his support for abortion bans and tighter voting laws.
“Mastriano wants to dictate how Pennsylvanians live their lives – that’s not freedom,” his campaign wrote. “Real freedom comes when we trust Pennsylvanians to make their own decisions about who they love, who they pray to, and how and when they start a family here in our Commonwealth. I will work tirelessly every single day to win this election in November, defend Pennsylvanians’ freedoms, and meet this moment.”
The down-ballot races
In the Democratic primary for lieutenant governor, Austin Davis easily captured the nomination. He was endorsed by Shapiro, and the two campaigned together. On the Republican side, State Rep. Carrie Delrosso had a commanding lead in a crowded field.
Three Democratic House primaries in Philadelphia got particularly heated this cycle: progressive incumbent state representatives Rick Krajewski, Elizabeth Fiedler, and Chris Rabb all faced more moderate primary challengers. In Rabb’s case, the challenger was fellow State Rep. Izzy Fitzgerald, thanks to redistricting-related consolidation.
Fiedler’s and Krajewski’s races are especially notable because in both cases, the Philadelphia Democratic Committee declined to endorse the incumbents — typically, a rarity. Instead, the committee endorsed their more conservative challengers.
But the results could point to a political machine with its powers on the wane: in all three cases, the progressives won easily.
On the other hand, with most of the results in, it appears longtime State Sen. Anthony Williams has beaten back a challenge by progressive teacher and labor organizer Paul Prescod.
Prescod had launched an underdog campaign centered on Williams’ aggressive support for charter schools and the fact that the senator habitually takes campaign donations from Main Line billionaire Jeff Yass, a charter school advocate who has also given to far-right Republicans.
By the end of the night, Williams led by more than 10 points in returns, but neither candidate had declared victory or conceded.