A majority bloc of left-wing Members of Parliament voted to redefine marriage as between two people rather than between one man and one woman.
The 249-97 vote included support from just one member of the nation's conservative bloc, Radio France Internationale said Saturday. Conservatives tried unsuccessfully to block the measure with a number of delay tactics, including a proposal to allow same-sex couples to enter into a "civil alliance."
It was defeated 171-71.
France's Socialist Party, led by President Francois Hollande, had pledged during the 2012 election to legalize same-sex marriage.
The BBC said polls suggest between 55 percent and 60 percent of French citizens support same-sex marriage.
"We are happy and proud to have taken this first step," Justice Minister Christiane Taubira said.
A final vote on the measure is scheduled for Feb. 12.