France's upper house Senate voted Friday to adopt a law granting homosexual couples the right to marry, which has sparked widespread opposition and protests from conservatives and religious groups.
The vote, by a show of hands, followed days of intense debate.
The bill must still technically face a second reading in the lower house National Assembly, but lawmakers there already adopted it in a first reading on February 12.
Senators had on Wednesday approved the crucial first article of the bill granting gay couples the right to marry and to adopt, by a vote of 179 to 157.
Justice Minister Christiane Taubira hailed the Senate vote, saying it had strengthened French society "by granting the simple recognition of full citizenship to homosexual couples."
The bill came under vehement attack in a country that is officially secular but predominantly Catholic, mobilising hundreds of thousands of people in pro- and anti-gay marriage protests nationwide.
In January, hundreds of thousands of demonstrators flooded into Paris for an anti-gay marriage march. Last month, police were forced to fire tear gas on people protesting the bill, and dozens were arrested.
Opponents had said they would organise another mass protest in Paris on May 26 if the law was approved, to demand its withdrawal and a referendum on gay marriage.
President Francois Hollande championed same-sex marriage and adoption during his election campaign last year, and his support for the legislation did not waver throughout the turmoil.