The bill passed the lower house of the National Assembly where the ruling Socialist Party and its allies voted 331-225 to give same-sex couples the legal right to marry and adopt children.
The bill now has to be signed by President Francois Hollande, who gave his formal approval last November.
France’s justice minister, Christiane Taubira, said the first gay weddings could take place as early as June.
The vote follows months of division in the country, marked by violence and protests. Ahead of the vote, thousands of police mobilized in preparation for dueling protests around the National Assembly while on Twitter the hashtag, “homosexuals must be killed” became popular.