It took a little more than two hours for The Associated Press to call the mayoral race in Pittsburgh's Democratic primary Tuesday night. But warning signs were flashing for Mayor Ed Gainey moments after the polls closed.
That's when the county posted results from more than 17,000 mail-in ballots sent in by voters and processed by election workers during the course of the day. Gainey himself got about 35% of those votes — roughly the same share as he earned in his challenge of then-Mayor Bill Peduto four years before. But his rival, Corey O'Connor, improved on Peduto's performance by 10 percentage points — a roughly 800-vote improvement.
Those early returns made one factor obvious from the outset: Unlike in 2021, when there were two other dark-horse Democrats challenging the incumbent, there was no one sharing space with O'Connor on Tuesday's ballot to divide the opposition vote.
Tony Moreno, who ran in that Democratic primary and got 2,114 mail-in votes, is now a Republican (and will challenge O'Connor in the fall). But many of the areas where he performed well in 2021 swung over to O'Connor in his absence.
Take the 19th Ward in the city's South Hills, one of the city's largest wards and long a bastion of more conservative Democrats. Moreno earned nearly 1,200 votes there in 2021: in his absence, O'Connor bested Peduto's vote count in the ward by 1,335 votes. Gainey improved on his 2021 total by only 66 votes.
The same held true in a number of more conservative areas, particularly south of the rivers (where O'Connor had the support of all three City Councilors).
But O'Connor's biggest strength may have been in the 14th Ward, which lies in the East End and includes Squirrel Hill, long noted for its high levels of Democratic engagement and being the ancestral base of the city's Jewish community. Concern about antisemitism at home and the war in Gaza abroad have been a focus of the campaign. And O'Connor received just over 7,000 votes here, according to unofficial totals, while Gainey garnered under 3,700 votes. That 3,300-vote margin, all but itself, accounts for 99 percent of O'Connor's victory margin in the city as a whole. (By comparison, Peduto won the ward by only about 750 votes in 2021.)
Gainey did retain much of his support, and even expanded on it in some places. Unofficial totals show him with a little under 28,000 votes — a roughly 5 percentage point improvement over his performance in 2021. And he actually increased his share of the vote in traditionally Black areas, such as the 12th Ward where he is on pace to receive nearly 90% of the vote — an improvement over his vote share in 2021, driven by the fact that O'Connor underperformed Peduto in the district.
Gainey struggled more in Lawrenceville's 6th Ward: In 2021 he bested Peduto there by 131 votes. On Tuesday he squeaked by with an edge of just 1 vote. The problem was similarly pressing in Bloomfield's 8th Ward, which Gainey won but with roughly 100 fewer votes than he had four years ago: O'Connor improved on Peduto's performance by more than 300 votes.
While O'Connor seems to have melded an uprising in the 14th Ward to support from more conservative areas, the data suggests Gainey struggled to connect some reputed progressive hotbeds with his base in Black neighborhoods.
There had been anecdotal reports of light turnout, particularly in Black communities, throughout the day Tuesday. In fact, the 12th Ward has posted only a few dozen fewer votes than were cast in 2021, but that performance only made the 14th Ward's roughly 900-vote surge in participation harder for Gainey to offset.
Overall, turnout was slightly higher than 26% — a 2 percentage-point increase over four years ago even if it was below the 30% county election officials were expecting. The problem for Gainey? That increase appears to have stemmed from people wanting to vote him out.
Copyright 2025 90.5 WESA