In Paris alone, 70,000 people turned out at one rally, said police, although organisers put the figure at 200,000.
Police said a further 22,000 protested in the southeastern city of Lyon. Officers there detained around 200 would-be counter-demonstrators who had come to oppose the main rally.
Several thousand people also turned out to march in Toulouse, in the southwest. Police there used tear gas against a group of several hundred activists who tried to confront the main rally in a counter-protest.
Up to 8,000 marched in the southern city of Marseille, where they too were confronted by supporters of gay marriage.
Another demonstration against gay marriage has been called in Paris for Sunday by the Catholic organisation Civitas.
On Saturday, Pope Benedict XVI called on the French church to make its voice heard on social issues.