President Francois Hollande's Socialists have pushed the measure through the National Assembly and put France on track to join about a dozen, mostly European nations that grant marriage and adoption rights to homosexuals.
The measure, approved in a 329-to-229 vote today, comes despite an array of demonstrations in recent weeks by opponents of the "marriage for all" bill. Polls show most French support legalizing gay marriage, though that backing softens when children come into play.
The Assembly has been debating the bill and voting on its individual articles in recent weeks. The overall bill now goes to the Senate, which is also controlled by the Socialists and their allies.