Thousands of gay marriage opponents waving pink and blue flags marched through Paris on Sunday in a last-ditch protest before a law allowing same-sex union and adoption is passed next week.
Chanting "We don't want your law, Hollande!", some 50,000 protesters massed behind a banner reading: "All born of a Mum and a Dad" and said it was undemocratic to bring about such a fundamental social change without holding a referendum.
Hastily organized after the law's passage was sped up to circumvent a big rally set for late April, Sunday's march capped months of protests by a dogged opposition movement that has sullied President Francois Hollande's flagship social reform.
"We warned the president back in November that we would not give up and that we would do everything to stop this law being passed, or to get it repealed if it is adopted," one of the protest organisers, Alberic Dumont, told Reuters.
Attended largely by families with children and old people, it was much more peaceful than a series of agitated demonstrations outside parliament this month that saw hard-right youths pelt police with stones and bottles and damage cars.
The piggy-backing by hard-right youths of a movement led by conservatives and Catholics has fed other ugly scenes including the public stalking of government ministers and a spate of homophobic attacks around the country.
As far back as January, the "anti" movement came under fire when some 350,000 protesters massed under the Eiffel Tower tore up the lawns beneath the monument.
Hollande, who is grappling with the lowest popularity ratings of any recent French president as unemployment surges above 10 percent, hoped to win some glory from passing a reform already in place in a dozen other countries.
Paris Mayor Bertrand Delanoe, one of very few French public officials who is openly gay, headed a rival march in favour of same-sex marriage and said that it was too late for anything to derail the law, set for a final parliament vote on Tuesday.
Additional reporting by Yves Clarisse; Writing by Catherine Bremer; Editing by Stephen Powell