On Tuesday, Democrats flipped at least 25 U.S. House seats across the country. Four of them were in Pennsylvania.
All four Republican congressmen on this site in Pennsylvania's competitive House races lost, and so did their candidate for governor. The six who won got smaller shares than they did two years ago. And the closing weeks of the campaign brought out some of the ugliest tactics we've seen this year — none of which worked.
Here's the good, the bad and the ugly.
The good: four House seats, the state Senate and a trifecta
Going into Tuesday, Republicans held 10 of Pennsylvania's 17 seats in the U.S. House. Starting in January, Democrats will hold 11 and Republicans 6, according to the Pennsylvania Capital-Star. All the vote shares below are from NBC News' count as of Saturday.
- Scott Perry lost the Harrisburg-area 10th District to Democrat Janelle Stelson, a former TV news anchor, 44.9% to 55.1%. It was a rematch. Two years ago, he beat her by about 5,100 votes. This time he lost by nearly 32,000. Perry, the former chair of the House Freedom Caucus, had held the seat for seven terms.
- Brian Fitzpatrick lost the Bucks County 1st District to Bucks County Commissioner Bob Harvie, 47.3% to 52.7%. Two years ago, Fitzpatrick won with 56.4%. He cast himself as an independent and pointed to his vote against Trump's budget bill. That "no" came after he had voted yes on an earlier version the bill couldn't have passed without. The seat had been held by a Republican since 2010, when his older brother Mike won it.
- Rob Bresnahan lost the 8th District in northeastern Pennsylvania to Scranton Mayor Paige Cognetti, 45.5% to 54.5%, after one term. He won the seat in 2024 with 50.8%. The Capital-Star reported that he "soon came under fire" for his stock trading. Voters in the two counties at the core of his district gathered signatures to put an insider trading ban on their own ballots, in a drive inspired by his trading.
- Ryan Mackenzie lost the Lehigh Valley 7th District to Bob Brooks, a former firefighter and head of the state firefighters union, 43.9% to 56.1%, also after one term. He won the seat in 2024 with 50.5%. Mackenzie ran on his support for Trump's budget bill. That law is behind nearly half of the 220,000-person drop in Pennsylvania's food stamp rolls in a year, the state says.
At the top of the ticket, Stacy Garrity lost the governor's race to Gov. Josh Shapiro, 38.3% to 60.4%. That is worse than Republican Doug Mastriano did against Shapiro four years ago, when he got 41.7%. The AP called the race within two minutes of the polls closing. In 2020, Garrity supported Trump's efforts to overturn the election, the Capital-Star reported. This year she said Trump lost, then spent the rest of the answer saying "we know there were irregularities" — she just couldn't say "to what extent."
The state Senate flipped
Republicans had run the Pennsylvania Senate since 1978, except for a brief tie in 1993, according to WHYY. In September, Senate Majority Leader Joe Pittman told reporters he believed his party would grow its 27–23 majority by one seat.
Instead, Democrats beat four Republican senators:
- Eileen Hartnett Albillar beat Sen. Frank Farry in the 6th District in Bucks County.
- Mark Pinsley beat Sen. Jarrett Coleman in the 16th, in Bucks and Lehigh counties.
- Chris Thomas beat Sen. Tracy Pennycuick in the 24th, in Montgomery and Berks counties.
- Brian Wrightson beat Sen. Rosemary Brown in the 40th, in Monroe County and parts of Lackawanna and Wayne.
Republicans won back one seat in Lancaster County (more on that below), so Democrats will hold the Senate 26 to 24.
Democrats also kept the state House and are poised to grow their 103–100 majority to 13 seats, according to Spotlight PA, though three of those races hadn't been called as of Friday.
Why it matters. With Shapiro re-elected, Democrats will control the governor's office and both chambers of the legislature for the first time since 1993. Democratic leaders said their top priorities are raising the state's $7.25 minimum wage to $15 and writing abortion rights into state law. House Speaker Joanna McClinton said "hundreds of our bills got stuck in a drawer over in the Senate." The timing matters, too. The Medicaid work requirements in Trump's budget bill start January 1, 2027, a date Republicans set to land after this election. Pennsylvania will meet them with a Democratic legislature instead of a Republican Senate.
The bad: they won, by less
Six Republicans on this site won Tuesday. All six are House members, and every one of them got a smaller share than two years ago. The Capital-Star found that the Republican-held "safe" districts it compared were all closer than in 2022, too.
- Mike Kelly won again in the northwest corner of the state with 53.9%, down from 63.7% — the closest call of any Republican who survived. The day after he learned the Butler steel plant would be saved, his wife bought 5,000 shares of the company. The House Ethics Committee voted unanimously to reprove him for how he answered questions about it.
- Lloyd Smucker won in Lancaster and York counties with 55.5%, down from 62.9%. His opponent, Nancy Mannion, came 13 points closer than when she ran against him in 2022, the Capital-Star found. After his hometown paper wrote that he was lying to constituents about the health care fight, he sued it for more than $250,000.
- Guy Reschenthaler won a fifth term in the southwest with 57.5%, down from 66.6%. In seven years he has held no in-person town halls, one Pittsburgh TV station asked him for an interview "40ish times" in the two months after Jan. 6, 2021 without getting one, and at a June event his chief of staff told reporters he would only take questions about one grant.
- Dan Meuser won a fifth term in coal country and the northern tier with 61.5%, down from 70.5%. In August, he still hadn't agreed to debate his opponent, Rachel Wallace, who had accepted two invitations. That same month he spent an hour at a private group's meeting explaining why he voted against certifying Pennsylvania's 2020 electors. On election night, he said voters had rejected "the failed ideology of authoritarian socialism."
- Glenn Thompson won a tenth term across the northern tier with 63.9%, down from 71.5%. He voted for the budget bill's Medicaid cuts. In Warren County, in his district, the hospital's CEO estimates more than 1,100 people will lose Medicaid eligibility.
- John Joyce won a fifth term in south-central Pennsylvania with 67.5% in a rematch with Democrat Beth Farnham, down from 74.2%. He turned down an in-person town hall in early 2025, and when 250 constituents held one anyway, they left him an empty chair.
The ugly: what they tried in the last weeks
The Republicans who lost Pennsylvania's biggest races spent the final weeks on some of the ugliest tactics of the campaign.
Scott Perry's "affidavit"
In October, Perry's own campaign ran an ad accusing Janelle Stelson of exposing herself to a neighborhood child. It flashed a document marked "AFFIDAVIT." It wasn't one. It was a notarized statement from a neighbor with Perry signs facing Stelson's house, it didn't say where the incident supposedly happened, and no charges were ever filed.
Reporting on the unproven claim led several TV stations in the district to pull the ad, the Capital-Star reported.
Perry also tried to tie Stelson to an immigrant who was arrested and charged with indecent exposure. The Department of Homeland Security put out a press release saying the man had been working as a canvasser for her campaign. Stelson's campaign said it never employed him and his name never appeared in its volunteer database, and federal campaign finance records confirm he was never paid. The ethics watchdog CREW accused DHS of breaking the Hatch Act, the federal law that bars officials from using their offices to sway elections.
Stelson won by 10 points.
Brian Fitzpatrick's lawsuit
On October 29, five days before the election, Fitzpatrick sued to remove a Democratic county commissioner from the three-person board that would certify his own race. His complaint said Commissioner Diane Ellis-Marseglia had shown "animus" toward him by supporting Harvie. She had served on that board for 15 general elections and certified every one of his wins.
A judge turned him down the day before the election. Pennsylvania law lets election officials be removed only if they are unqualified, on the ballot or impeached, and Fitzpatrick had asked the court to change how the election is run "based upon supposition and opinion," the judge wrote. "Without statutory authority we decline," the order said, according to The Philadelphia Inquirer's account as relayed by the Northeast Times.
That came on top of the ads. A PAC aligned with Fitzpatrick ran ads alleging Harvie was the subject of an FBI investigation. Harvie says he never was — he testified as a witness before a federal grand jury in 2022 — and sued the PAC for defamation. Fitzpatrick's own campaign ads quoted "news" headlines attacking Harvie. Every one of them was self-published by a Fitzpatrick ally his campaign had paid.
Stacy Garrity's deepfake
Late in the race, Garrity ran an ad made with artificial intelligence that showed a computer-generated Josh Shapiro bragging about supporting data centers. Deepfake ads are allowed under Pennsylvania law. Her campaign's videos also invoked unproven allegations that Shapiro, as attorney general, was involved in covering up the murder of a Philadelphia teacher, the Capital-Star reported.
Garrity lost by 22 points.
The rest of the ugly
- Republicans took back a seat Democrats won in a 2025 upset. In Lancaster County's 36th state Senate District, Republican state Rep. Tom Jones beat Democratic Sen. James Malone. Malone had won it in a 2025 special election by 529 votes, in a district that, the Capital-Star reported, hadn't been represented by a Democrat since the 19th century.
- A Democratic state House seat in Butler County fell, too. Democratic Rep. Brandon Dukes conceded to Republican Scott Timko in the 12th District, a seat Dukes won in a special election earlier this year.
- Mackenzie's ad. Mackenzie aired an ad accusing Brooks of "violating state law" by canceling workers' compensation insurance for his landscaping business. Brooks's lawyer said the claim was demonstrably false because the business had no employees when the policy expired. Mackenzie refused to take it down. Brooks pulled out of their only debate, citing months of "outright lies." The two campaigns traded cease-and-desist letters over each other's ads.
- Federal election monitors. Before Election Day, the U.S. Department of Justice told Secretary of the Commonwealth Al Schmidt it would send election monitors to polling places in four Pennsylvania counties. After the polls closed, Schmidt said he was not aware of any reports of monitors interfering with voters.
What the results show
Pennsylvania voters threw out four Republican congressmen — Scott Perry, Brian Fitzpatrick, Rob Bresnahan and Ryan Mackenzie — turning a 10–7 Republican delegation into an 11–6 Democratic one, and flipped the state Senate to give Democrats full control of state government for the first time since 1993. Josh Shapiro beat Stacy Garrity 60.4% to 38.3%. The six Republicans who won all got smaller shares than in 2024, led by Mike Kelly's drop from 63.7% to 53.9%. Perry lost by 10 points after running an ad accusing his opponent of exposing herself to a child, which several TV stations pulled, and Fitzpatrick lost after suing to remove a Democrat from the board that would certify his race.
Source
The latest updates from the 2026 election in Pennsylvania — Pennsylvania Capital-Star staff, November 3–4, 2026.