The main demonstration saw three separate processions converging on the Invalides esplanade, filling the huge promenade with pink and blue – the official colours of the anti-gay marriage movement.
Police said 150,000 people turned out to protest, a figure immediately contested by organisers of the demonstration who said one million opponents of the law had shown up.
By early evening, no incidents had been reported despite the presence of far-right activists, some of whom briefly unfurled a banner at the ruling Socialist party’s headquarters urging President Francois Hollande to resign.
But as the protestors dispersed, police said up to 500 people began attacking them by throwing metal barriers, smoke flares and beer bottles.
Police said they arrested 96 people and used tear gas to fight off the troublemakers.
The youths shouted slogans against the government such as “Socialist dictatorship” and also threw objects at journalists covering the event.
Late Saturday, police had detained 50 people involved in an anti-gay marriage protest on the busy Champs-Elysees avenue.