Sunday’s 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 protesters 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 on Saturday, police detained 50 people involved in an anti-gay marriage protest on the busy Champs-Elysees avenue.
Fears of unrest at Sunday’s march had been fuelled by violence that erupted earlier this month during celebrations marking football club Paris Saint-Germain’s league victory that saw tourists attacked and shop and car windows smashed.
Some 4500 security forces were mobilised for what was billed as a last-ditch show of force by opponents of the bill allowing same-sex marriage and adoption, which was voted into law on May 18 following months of bitter protests.
Interior Minister Manuel Valls had warned that so-called “ultras” – many of them far-right nationalists – were expected to infiltrate the protest and cause unrest, and advised parents not to bring their children with them.
But those in the protest ignored the recent tensions and came with their families.
“We keep hearing about a far-right movement, I can see only families here,” said one man called Raoul, who came from the city of Dijon.
Onlookers were instead treated to creative forms of protest. One man dressed in black held a scythe and wore a mask of Hollande as he stood behind a coffin in which lay a mannequin dressed as Marianne, the emblem of France.
Supporters and opponents of the bill began protesting last autumn when it was adopted by the cabinet, and continued to do so at regular intervals throughout the country during the legislative process.
But according to a survey published on Sunday in the Journal du Dimanche, nearly three-quarters of French people are tired of the anti-bill protests and think they should stop.