The 2017 election season is over, and nearly every incumbent in New York City won re-election, from Mayor Bill de Blasio and his fellow citywide elected officials to embattled Manhattan District Attorney Cy Vance Jr. to a number of City Council members. The most surprising outcome of the night, however, was New York City Councilwoman Elizabeth Crowley’s too-close-to-call race against Robert Holden, a local association leader and academic who had a 133-vote lead in the preliminary results as of 11:30 p.m. Otherwise, the favored candidates coasted to victory, and the buzz generated by a number of third-party contenders fizzled out. Here’s a look at the most notable outcomes of the night in New York City.

NEW YORK CITY MAYOR

Bill de Blasio: 65.07%
Nicole Malliotakis: 27.75%
Sal Albanese: 2.09%
Akeem Browder: 1.44%
Michael Tolkin: 0.98%
Bo Dietl: 0.97%
Aaron Commey: 0.24%

New York City Mayor Bill de Blasio easily won re-election Tuesday night, ensuring another four years of a progressive mayor who made the creation of a more fair city a central tenet of his campaign. In doing so, de Blasio avoided the fate of his old boss, former New York City Mayor David Dinkins, who failed to win re-election in 1993.

“Things are still not where they need to be in this city. We’ve got to become a fairer city,” de Blasio said in his victory speech at the Brooklyn Museum. “You’ve seen some important changes over the last four years, but you ain’t seen nothing yet!”

RELATED: 8.5% of New Yorkers voted for de Blasio. Is that a mandate?

Republican Assemblywoman Nicole Malliotakis won her home borough of Staten Island in a rout, earning more than double de Blasio’s vote total there, but got crushed in every other borough. Still, with some 28 percent of the vote (according to preliminary New York City Board of Elections results with 97.47 percent of scanners reported), Malliotakis outperformed 2013 Republican candidate Joe Lhota, who earned just 24 percent of the total vote that year. Preliminary numbers suggest that just 24 percent of voters New York City voted in the contest, which would be an all-time low for a mayoral general election. The other candidates combined for about 6 percent of the vote – notable among them being Bo Dietl, who spent more than $1 million and appeared on stage in two general election debates, but still failed to earn even 1 percent of the vote.

RELATED: The great Muppet mayor

NEW YORK CITY PUBLIC ADVOCATE

letitia james in a park
Letitia James. (Photo by Celeste Sloman)

Letitia James: 73.73%
Juan Carlos “J.C.” Polanco: 15.75%
Michael O’Reilly: 8.02%
James Lane: 1.76%
Devin Balkind: 0.61%

New York City Public Advocate Letitia James won a second four-year term with an impressive 74 percent of the vote, beating her closest competitor, Republican J.C. Polanco, by 58 points (according to the New York City Board of Elections with nearly 98 percent of scanners reported). Since the office was created in the early 1990s, no incumbent running for reelection has lost, a streak James continued. Now she’s likely to be seen as a potential contender for mayor in 2021, when she could follow in the footsteps of former Public Advocate Bill de Blasio – and possibly became the first woman in charge at City Hall.

NEW YORK CITY COMPTROLLER

Scott Stringer: 76.66%
Michel Faulkner: 19.55%
Julia Willebrand: 3.15%
Alex Merced: 0.56%

In the 2013 election cycle, then-Manhattan Borough President Scott Stringer eyed a run for mayor, but opted to campaign for city comptroller instead. He did the same thing this cycle, and coasted to another four-year term in which he’ll continue to be perhaps the biggest check on Mayor Bill de Blasio in the city. Michel Faulkner, Stringer’s Republican rival, struggled to attract much attention on the campaign and garnered just 20 percent of the vote, while the Green Party’s Julia Willebrand and Libertarian Alex Merced each failed to exceed 4 percent of the vote.

RELATED: Constitutional convention and 2017 state ballot proposal results

MANHATTAN DISTRICT ATTORNEY

Cy Vance
Cyrus Vance Jr. (Ed Reed/Mayoral Photography Office)

Cyrus Vance Jr.: 90.63%
Write-ins (unspecified): 9.37%

Incumbent district attorneys in New York City rarely face serious threats, and this year was no different for Manhattan District Attorney Cyrus Vance Jr., who ran unopposed and won re-election with nearly 91 percent of the vote. However, Vance’s standing took a hit after a barrage of negative stories about potential cases he chose not to pursue – against Bill de Blasio, Harvey Weinstein, and Donald Trump Jr. and Ivanka Trump – and questionable campaign contributions he received from the lawyers involved. The disclosures spurred several write-in candidacies, and this week one of the candidates, lawyer Peter Gleason, got behind another, former Brooklyn Assistant District Attorney Marc Fliedner. Nearly 1 in 10 voters wrote in a candidate, although the Board of Elections did not immediately post the write-in names.

NEW YORK CITY COUNCIL

District 1

Margaret Chin
Margaret Chin. (William Alatriste for the New York City Council)

Margaret Chin: 49.80%
Christopher Marte: 36.92%
Aaron Foldenauer: 4.40%
Bryan Jung: 8.75%

New York City Councilwoman Margaret Chin notched a comfortable re-election victory in a rematch against Christopher Marte, who in the earlier Democratic primary finished just 222 votes behind the incumbent. Marte, an activist buoyed by voters unhappy with Chin’s record of paving the way for controversial new development in the district, ran in the general election on the Independence Party line. But with de Blasio and the Working Families Party rallying around Chin, the challenger ultimately fell short. Still, Chin garnered only about half of the vote in the general election, reflecting significant voter dissatisfaction.

RELATED: Marte's rent-free headquarters may violate finance rules

District 4

Keith Powers: 57.09%
Rebecca Harary: 30.75%
Rachel Honig: 11.06%

This eastern Manhattan district is relatively moderate, but Democrat Keith Powers easily dispatched Republican Rebecca Harary, who had run unsuccessfully for an Assembly seat in 2016 and fell short once again in an attempt to capitalize on local opposition to Mayor Bill de Blasio. Powers, a former legislative aide and lobbyist, will replace outgoing City Councilman Dan Garodnick, who was unable to run again due to term limits.

District 30

Robert Holden nicole malliotakis and george pataki
Robert Holden (left) with Nicole Malliotakis and former governor George Pataki. (Photo courtesy Robert Holden for City Council Facebook)

Robert Holden: 50.25%
Elizabeth Crowley: 49.59%

Robert Holden, a professor and local civic association leader, appears to be on the verge of knocking New York City Councilwoman Elizabeth Crowley out of office, in what would be the only race in which an incumbent falls short. Holden, who earned 36 percent of the vote in the primary, ran in the general on the Republican, Conservative and Reform party lines, and tapped into significant voter discontent.

Despite Crowley’s financial and institutional support, as of 11:05 p.m., Holden was ahead by just 133 votes, according to preliminary results posted by the New York City Board of Elections with nearly 99 percent of scanners reported. With such a narrow margin, the final outcome will likely have to wait on a recount.

District 40

Mathieu Eugene: 60.12%
Brian Cunningham: 36.36%
Brian Kelly: 3.33%

Democrat Mathieu Eugene had a tough primary race, but he rebounded in the general election with 60 percent of the vote. The New York City Board of Elections’ preliminary results showed Eugene with a 23-point lead (with 98 percent of scanners reported). Cunningham, a legislative staffer who ran on the Reform Party line and won the backing of the Working Families Party, won only about a third of the vote. 

District 43

Justin Brannan: 50.51%
John Quaglione: 46.89%
Bob Capano: 1.31%
Angel Medina: 1.1%

In one of the closer New York City Council races this November, Justin Brannan kept the Brooklyn district in Democratic hands. Brannan, the founder of the Bay Ridge Democrats, beat John Quaglione, the GOP nominee and a staffer for state Sen. Marty Golden, who is one of the few Republican elected officials in the five boroughs. With 99 percent of scanners reported, preliminary New York City Board of Elections results showed Brannan leading Quaglione by 895 votes. 

District 44

Kalman Yeger
Kalman Yeger. (via Twitter)

Kalman Yeger: 66.80%
Yoni Hikind: 28.69%
Harold Tischler: 3.97%

Despite the nasty attacks in one of the city’s most closely watched races, Kalman Yeger easily won victory in the district covering South Central Brooklyn, including Borough Park and Midwood. Yeger is a protege and former treasurer for outgoing New York City Councilman David Greenfield, who currently holds the seat and chose not to run for re-election this year – and was criticized for essentially handpicking Yeger as his successor. Yeger defeated Yoni Hikind, a former Assembly staffer and son of Greenfield’s political rival, Assemblyman Dov Hikind.