An estimated 200,000 people have gathered in Paris in the last major protest before the country's first gay marriage.
The demonstrators converged in three columns at the Invalides complex in the centre of the city.
More than 4,500 police are on duty, after violence broke out on earlier protests, and 50 demonstrators were arrested last night after chaining themselves to metal railings on the Champs Elysee Avenue and firing smoke canisters at officers.
The gay marriage, bill, which also grants adoption rights to homosexual couples, was signed into law by president Francois Hollande earlier this month, and has generated huge controversy.
The country's first same-sex wedding ceremony takes place this week in Montpellier.
'Think of the children'
A member of parliament for the conservative UMP party, Jacques Myard, headed one of the columns and told BBC News that his party would review the law if elected.
He said there was a "huge gap between this government and the citizens" over the marriage issue.
"This is something we cannot accept because of the fate of the children," he said.
"Those people are playing God, because they want to marry, but it won't stop at this stage. Then they will adopt, and then we will have children in families where there is no father or no mother."
Some protesters climbed onto the roof of the headquarters of Hollande's Socialist Party and unfurled a banner saying "Hollande, resign".
Many of the most radical protest groups have grouped together under the banner of the Printemps Francais organisation, which the French Interior Minister said he was considering banning after it called on members to "target" politicians and media outlets in response to the legislation.
Last week, right-wing historian Dominique Venner, 78, shot himself on the altar of Notre Dame cathedral, and left a blog post condemning the law.
The satirist-turned-activist Frijide Barjot, who is a figurehead of the anti-gay marriage movement, said she would not attend after she received death threats for criticising Venner's suicide.