Supporters of the Socialist government chanted “Equality! Equality!” after the result – 329 votes to 229 – was announced.
The right, which had dragged the debate out with thousands of amendments and points of order, walked out of the chamber.
The mainstream right UMP had joined Catholic activists and other opponents of the legislation in unexpectedly large demonstrations against the “marriage for all” bill. As many as 800,000 people marched in Paris as the law was being debated – at least twice as many as joined demonstrations to support it.
The law’s opponents did not go easy on the rhetoric.
In September the archbishop of Lyon, Cardinal Philippe Barbarin, redefining marriage as between two people, instead of between a man and a woman, would open the door to incest and polygamy.
And millionaire arms manufacturer, Serge Dassault, suggested the French would die out after being consumed by the same decadence that led to the fall of ancient Greece.
"We'll have a land of homos," Dassault claimed. "And then in 10 years there will be no-one left.”
The law, which is expected to come into effect by the middle of the year, will allow same-sex couples to marry and adopt children. Gay men and woman can already adopt as individuals if approved by social services.
The Senate debate will start on 2 April, later than the initially planned date of 18 March.
While the right has promised a debate “without obstruction or excesses”, in the words of UMP Senate leader Jean-Claude Gaudin, the left is not certain of the support of all its members.
Former interior minister Jean-Pierre Chévènement opposes the law but will not vote against – he will either abstain or not participate in the vote.
And it is not yet clear how some senators from overseas territories, such as the French West Indies and the Indian Ocean island of Réunion, will vote. For cultural or religious reasons, fewer of their voters support the reform than in mainland France.
The legislation may also be held up if amendments are passed, obliging it to be returned to the lower house for approval in its changed form.
On the positive side for its supporters, two UMP senators, Alain Mion and Christian Cointat, have said they will vote in favour and two more, Alain Fouché and Christophe-André Frassa, are to abstain.
The widely recognised star of the lower house debate was Justice Minister Christiane Taubira, an MP for Cayenne in French Guiana who has come under fire from the right on more than one previous occasion.
Peppering her speeches with literary references and humour, she also became a web video hit when she broke out in uncontrollable laughter during some of her parliamentary interventions.
After the bill was passed she sought to reassure MPs that it did not mean an end to “the game of love”, either for heterosexuals or for homosexuals.
“There will still be plenty of women to look at you, gentlemen, to observe you, to try and see the tenderness that sometimes exists behind your carapaces, to try to break through the faults that are sometimes hiding behind your affable exteriors and to discern the interlacing of your talents and your weaknesses if you are able to forge paths through the sea, as Antonio Machado.”