The results of the 2025 Primary Election are in, for the most part, after a hectic campaign season and a sweltering Election Day.
A heated mayoral primary and dozens of local races drew significant voter turnout across the five boroughs.
According to the city’s Board of Elections, early voting totals nearly doubled from the 2021 primary election, and Brooklyn — the city’s most populous borough with the highest number of registered Democrats — led the charge, as 142,735 people voted early in Kings County.
Many more headed to the polls on Election Day, too, with preliminary results showing that more than 990,000 New Yorkers in total voted in the Democratic mayoral contest. Approximately 358,000 of those voters hailed from Brooklyn.

All three citywide races were effectively decided on Tuesday night as the frontrunners took wide leads. Zohran Mamdani claimed victory in the mayoral primary, defeating frontrunner Andrew Cuomo by more than 70,000 votes. In Brooklyn, Mamdani earned 48% of the mayoral vote, clinching 174,577 votes to Cuomo’s 113,138. Meanwhile, Justin Brannan, the outgoing City Council member in southern Brooklyn’s District 47, conceded the race for Comptroller to Manhattan Borough President Mark Levine, who clinched more than 48% of total votes. Another Brooklyn native, Jumaane Williams, won the Democratic primary for Public Advocate, effectively guaranteeing he will be re-elected come November.
Unofficial election night data from the BOE show relatively few surprises in Brooklyn. Most incumbents won their primaries handily, even in closely-watched races in Council Districts 38, and 39. Just one race remained too close to call on Wednesday morning, the Republican primary in District 47.
Here’s a breakdown of the results from Tuesday night’s election, based on unofficial BOE data. With ranked-choice voting, some races won’t be certified until next week, even though the losing candidates have conceded.
Many of these candidates will advance to the general election in November, though some are expected to be uncontested. For more information on the results of citywide contests, including the mayoral, Comptroller, and Public advocate contests, head to our sister site amNewYork.
Brooklyn Borough President
Incumbent Democrat Antonio Reynoso cruised to re-election over challenger Khari O. Edwards, earning 241,149 votes, or 77%, to Edwards’ 70,261. Reynoso, a former council member who was first elected to Borough Hall in 2021, after he won the Democratic nomination in a crowded primary contest.
In a statement, Reynoso said he was “deeply humbled and gratified” by the result.
“As I look forward to the next four years, I am energized and excited about the possibilities that lie ahead,” he said. “My commitment to showing up in every community remains steadfast as we work to ensure that all Brooklyn families can thrive. Together, we will continue to address the pressing issues facing our borough, building on the progress we’ve made while tackling new challenges head-on.”
Edwards, a cannabis executive and former leader at Brookdale Hospital, had not publicly commented on the race as of Wednesday morning.
Civil Court Judge
Four Democratic candidates threw their hats in the ring for two open seats on the Brooklyn Civil Court, and Janice Chen and Marisa Arrabito appear to have come out on top. Chen won more than 143,000 votes, or 34% of the total; and Arrabito earned 107,709, or just under 26%.
Chen has spent most of her career as a Court Attorney in the Brooklyn Supreme Court’s Civil Term, where she still works today; Arrabito started her career as a family and matrimonial lawyer before becoming a Principal Law Clerk in the Brooklyn Supreme Court in 2022.
The two beat out candidates Susan Liebman and Janice P. Purvis, though Arrabito and Liebman had both been endorsed by the Brooklyn Democratic Party.
City Council
Council District 33 – Greenpoint, Williamsburg, Bed-Stuy, Downtown Brooklyn, Brooklyn Navy Tard
Incumbent Lincoln Restler won the Democratic nomination over challenger Sabrina Gates in the largely left-leaning District 33. Restler, who was first elected to the Council in 2021, won a whopping 23,938 votes — or 75% of the total— while Gates, who was backed by the Brooklyn Democratic Party, earned 7,685, or 24%.
“I love serving our community,” Restler said on social media. “Psyched for all we will do together over the next four years!”
Council District 35 – Crown Heights, Prospect Heights, Clinton Hill, Fort Greene
Incumbent Crystal Hudson faced three challengers in the Democratic primary, but managed a sweeping victory nonetheless, earning 84% of the vote — more than 32,000 individual votes — while challengers Hector Robertson, Kenny Lever and Dion Ashman won a combined 5,681 votes.
In a statement, the Working Families Party celebrated Hudson’s victory.
“As a longtime community organizer and now Councilmember, Crystal has been a steadfast champion for the working families of Brooklyn, and her voice has been essential to the City Council’s progress on affordability, the aging community, and stronger mass transit,” the group said. “Councilmember Hudson will continue to be the fighter for Brooklyn that her community deserves, and we are so proud to support her re-election this fall!”
District 36 – Bedford-Stuyvesant, Crown Heights
Incumbent Chi Ossé, one of the best-known Council Members in New York City, won the primary by a wide margin, winning 78.37% of the vote, while challenge Reginald Swiney earned 20.89%. Ossé, the youngest member of the City Council, is also one of the most popular, thanks in part to his engaging social media presence and legislation like the FARE Act.

“We did it again! Thank you to my amazing campaign team, government team, volunteers, donors, and most importantly my constituent neighbors for entrusting in me the privilege [to] lead,” Ossé said on X. “I can’t believe this is my last City Council election — I’m having a bittersweet moment! Four years ago when I won my first race, at 23 years old, I never could’ve of dreamed of all that we have accomplished for the people of Bed-Stuy, Crown Heights, and NYC as a whole.”
District 38 – Red Hook, Sunset Park, Greenwood Heights, Windsor Terrace, Dyker Heights, Borough Park
In District 38 — one of Brooklyn’s more competitive primaries — incumbent Alexa Avilés sailed to victory over challenger Ling Ye with 71.5% of the vote to Ye’s 27.9%.
“We won and we won big last night!” Avilés wrote on Instagram. “I am so honored to have the opportunity to serve my community for another four years.”
“To dark money special interest groups, I say what you and I already know,” she added. “District 38 is NOT for sale. Brooklyn is NOT for sale. This win is about people-power and community, and it’s decisive.”
District 39 – Kensington, Borough Park, Windsor Terrace, Park Slope, Gowanus, Carroll Gardens, Cobble Hill, Boerum Hill, Columbia Waterfront District
District 39 was home to one of the city’s most closely-watched contests, as incumbent Democrat Shahana Hanif faced a challenge from Maya Kornberg. On Tuesday night, Hanif won the Democratic nomination with 30,592 votes, or 69.7% of the total. Kornberg took 11,467 votes, or 26.16% of the total.

“It’s about communities coming together across race, class, faith, age, and language‚ refusing to be divided. It’s about building the Brooklyn we believe in,” she told supporters at a watch party on Tuesday. “I am grateful to every voter who cast their ballot, every volunteer who knocked on a door, and the incredible District 39 community for electing me to represent them in the City Council. It’s truly the honor of my life to get to fight for the neighborhoods that raised me.”
Hanif is not expected to face a challenger in the November general election, and effectively clinched her re-election to the Council by winning the primary.
District 41 – Bed-Stuy, Ocean Hill, Brownsville, East Flatbush, Crown Heights
Democrats piled into the District 41 race to contest incumbent Darlene Mealy, but none of the challengers were able to find their footing in the district, and Mealy appeared to have clinched a victory with 43.24% of the vote.
The seven other candidates earned between .42% and 15.61% of the vote, respectively, likely not enough to overcome Mealy’s lead in subsequent rounds of ranked-choice voting. Mealy had not commented publicly on the race as of Wednesday morning.
District 46 – Bergen Beach, Canarsie, Flatlands, Georgetown, Gerritsen Beach, Marine Park, Mill Basin, Sheepshead Bay
In District 46, incumbent Democrat Mercedes Narcisse secured a landslide win over Dimple Willabus, an entertainment CEO and community leader. Narcisse, a former nurse, won nearly 83% of the vote, while Willabus picked up 16.73%.
“I’m honored and humbled by your overwhelming support at the polls today,” Narcisses wrote on Instagram. “You’ve shown that hard work, truth, and service still matter. I’m proud to keep fighting for our schools, seniors, families, and every corner of our community. Let’s keep moving forward, together.”
District 47 – Bay Ridge, Coney Island, Sea Gate, Dyker Heights, Gravsend, Bath Beach
District 47, currently represented by comptroller hopeful Justin Brannan, is the only council district in Brooklyn where both Democrats and Republicans faced off in the primary.
Newcomer Kayla Santosuosso clinched the Democratic party nomination, earning 79.27% of the vote to Fedir Usmanov’s 20.04%.
Meanwhile, the Republican primary in District 47 remained too close to call on Wednesday morning. George Sarantopoulos, a local business leader, had a slight lead over Kings County Republican Party Chair Richie Barsamian on Wednesday morning, but was up by only 32 votes with 97.44% of scanners reporting.
Despite the tight margin, Sarantopoulos declared victory on Wednesday. In a statement, he commended Barsamian, but said he was ready to “move forward and fight to flip this district in November from the grip of the left-wing Democrats.”

The eventual winner of the Republican primary in District 47 will go on to face Santosuosso in the general election come November, a contest Santosuosso said was the “real race.”
“This campaign, starting now, is about protecting a Bay Ridge that all of us feel safe in and comfortable in and enjoy,” Santosuosso said at her victory party on Tuesday night. “And that Bay Ridge is actually for everybody, and that we can fight together to make a Bay Ridge that is not only affordable for everybody, but enjoyable for everybody, where everybody feels like they can be themselves here, and for everybody to know, no matter how long you’ve been here, no matter who you are, no matter what language you speak, you belong here.”
District 48 – Sheepshead Bay, Brighton Beach, Manhattan Beach, Homecrest, Midwood, Gravesend
In Brooklyn’s only Republican-held City Council district, incumbent Inna Vernikov trumped challenger Ari Kagan, a former Council Member in neighboring District 47.
Vernikov, who was first elected in 2021, earned 2,427 votes, or 65.97% of the total, while Kagan scooped up 1,232, or 33.49%
“Look, this is not for me. This is the victory for the people of District 48, for New York City,” Vernikov told Brooklyn Paper at an election night watch party.

The Republican nominee said that her victory “sent a message” to Kagan, who switched parties from Democrat to Republican in 2022.
“We in the Republican Party, we should only accept people with a proven record of being conservative Republicans,” she said. “My opponent was just not that — he was a lifelong Democrat, and this sends a strong message to Democrats who think they can run as Republican and win over the people, you cannot fool the people. And people see right through it. They see the truth.”