By a vote of 49-1, the City Council signed off Wednesday on its $66 billion budget deal with the mayor.
The sole "no" vote was cast by City Councilman Charles Barron of Brooklyn.
Even though the budget avoided roughly 4,000 teacher layoffs and spared 20 fire companies, there are still some deep cuts.
As part of the deal, 2,600 retiring teachers will not be replaced. Opponents say that would lead to bigger class sizes.
About 1,000 workers will still be laid off from the city's Department of Transportation, Parks Department and Administration for Children's Services.
"What we did in this budget was identify the areas where the pain that was proposed was simply too deep, where the cuts would have gone in and made damage that was unfixable," said City Council Speaker Christine Quinn.
For the city police department, there's some good news and bad. Funding for a police recruit class was restored, but there are other cutbacks.
"This budget will result in 350 civilians being cut from the police department, and they will have to be replaced by uniformed officers off the street. I really hope the mayor and union can get together and ensure that doesn't happen," said Queens Councilman Peter Vallone Jr.
"It would be impossible to have a perfect budget when the city and our budget and our tax revenues are still feeling the impact of the recession," said Quinn.
Protestors came out by City Hall Tuesday night and Wednesday to urge a "no" vote, saying that Wall Street banks need to pay their fair share to the city.
"I do not understand why these people who make millions and billions of dollars can't be the ones held accountable," said one demonstrator.
"The city has plenty of money. They've got a budget surplus. Wall Street's got billions of dollars. There should be no cuts," said another.
Nevertheless, council members were not swayed.
"I asked them, 'Do you know what voting no means? Do you know how much pain would happen to our constituents if we vote no?'" said Manhattan Councilman Robert Jackson.
The vote was originally set for Tuesday night, but would have broken the council's own ethics rules.
Under a 2008 reform intended to make pork barrel spending somewhat visible, the list of member items in the budget must be made public at least 24 hours before the vote.
The new budget goes into effect on July 1 and extends through the next year.