City Councilwoman Letitia James won the Democratic runoff for public advocate over state Senator Daniel Squadron Tuesday night.
According to the Associated Press, with 99 percent of precincts reporting as of early Wednesday morning, James had 59 percent of the vote to Squadron's 41 percent.
The race was called just one hour after polls were closed.
In her victory speech, James said there's no shortage of challenges to the city, including fixing schools, income inequality and stop-and-frisk.
She called her victory historic.
"The first woman of color to hold citywide office in our city," she said. "All of us, all of us broke through that glass ceiling, and I am so proud of what we accomplished together, and yes, I'm proud that we made history tonight."
James reminded her supporters that she was from working class roots.
"As someone who comes from humble beginnings and never forgets that fact. I have experienced it myself," she said.
Squadron said he deeply respects his former opponent and called on New Yorkers to support her as well. He said that they both raised awareness about the important role the public advocate plays.
"Together, I think we really did make sure that those issues were talked about, but we also know that Tish James will be a great advocate for those communities and so many others," Squadron said. "Let's give her a round of applause for her great victory tonight."
The runoff election was necessary after neither candidate received 40 percent of the vote in the September 10 primary.
James got 36 percent in last month's Democratic primary, while Squadron received 34 percent, necessitating the runoff at a cost of around $13 million.
The race between James and Squadron became increasingly bitter in the days leading up to Tuesday's runoff showdown, with personal attacks and finger pointing.
Both candidates addressed the negative turn in the race when they went to vote in the polls Tuesday.
"All I wanted to do was talk about really talk about the issues, and all I wanted to do was really be a public servant," James said. "So all of these personal attacks, we really need to do better."
"I think it's really unfortunate that my opponent decided to go negative months ago and has repeated some personal attacks and innuendo that have proven not true, as late as yesterday," Squadron said. "I really think that's unfortunate. My campaign has stuck to the facts. We focused overwhelmingly on our plan for the office."
In the end, supporters of James said that ultimately, it was the union support that got just enough people to the polls for a decisive victory, not only 32BJ but 1199, which pulled big numbers in the Brooklyn precincts where they needed to do well.
James was first elected to the City Council in 2003 to fulfill the unexpired term of city councilman James Davis, who was shot and killed inside City Hall.