It was a campaign that began with verbal punches and escalated at one point to a slap in the face between supporters. But, in the end, there was an embrace.
Council Speaker Christine Quinn hugged Public Advocate Bill de Blasio on the steps of City Hall. Then, flanked by the politicians and unions who once supported her, she endorsed him for mayor.
"Bill and I and so many Democrats around the city, and certainly the Democrats on these steps, share the same progressive values," she said.
Jobs, affordable housing, public education: Quinn said she and de Blasio agree on it all. As for things they didn't agree on, like term limits, de Blasio called Quinn "a fierce competitor."
"When she's out on the playing field, she plays hard. And I say, 'Amen.' Everyone should play hard when they're a candidate," de Blasio said.
But he said the real differences were between him and his Republican opponent, Joe Lhota.
"The battle ahead will be a difficult one, but the unity you see here today speaks volumes. And I have no doubt that together we will be victorious," he said.