Late Tuesday night, longtime civic activist Holden held onto a 133-vote lead, representing 50.25 percent of the vote. Crowley, who first won her seat in 2009, garnered 49.59 percent of the vote.
There are still about 400 to 500 absentee and affidavit ballots still to be counted, but at his post-election party Tuesday night Holden claimed victory.
“We took out the machine and a nine-year incumbent who had all the advantages,” he said. “But we had drive, we had relentless volunteers. This is a victory for the community.”
Holden said all the precincts are counted “except the paper ballots.”
“We’re confident it’ll hold true,” he said. “I think we won this race."
Crowley defeated Holden in September's Democratic Primary with 62 percent of the vote. Holden fell short by roughly 1,600 votes in District 30, which spans Maspeth, Middle Village, Glendale and Ridgewood.
Holden, a registered Democrat, cut a deal to run on the Republican Party line, a move that drew criticism. He also ran on the Conservative and Reform party lines in the general election.
The president of the Juniper Park Civic Association and a member of Community Board 5, Holden was one of the leaders of high-profile protests against Mayor Bill de Blasio’s plan to convert a Maspeth Holiday Inn Express into a homeless shelter.
Crowley has served in elected office since 2009. The cousin of Congressman Joseph Crowley, the councilwoman has touted her funding for local parks, libraries, schools and community organizations.
In a statement, Crowley said she's proud of her record, and that her campaign ran on "truth and hard work."
"We have done tremendous work over the last nine years to make our communities a better place to live and raise a family," she said, "and I am confident once all of the numbers come in, we will have four more years to build on that success."