French parliament has approved a law allowing same-sex couples to marry and to adopt children.

President Francois Hollande’s "marriage for all" law is the biggest social reform in France since his predecessor Francois Mitterrand abolished the death penalty in 1981.

Politicians in the lower house National Assembly passed the bill by 331 votes for and 225 against, making France the 14th country in the world to allow same-sex couples to wed.

Mr Hollande's Socialists have an absolute majority in the lower house.

"Many French people will be proud this job is done," Justice Minister Christiane Taubira told parliament.

"Those protesting today will find themselves moved by the joy of the newly-weds."

Critics have said Mr Hollande should focus on fixing the moribund economy, while opponents have demanded a referendum and protests against it descended into violence.

The debate is also blamed for fanning a spate of homophobic attacks, including the beating up of a 24-year-old in the southern city of Nice on Saturday.

Interior Minister Manuel Valls warned this week of "zero tolerance" for such violence.

Socialist and conservative lawmakers had come close to blows more than once during lengthy parliament debates on the law, which authorises adoption and marriage but will not let gay couples use medically assisted procreation.

France, a mainly Catholic country, follows 13 others including Canada, Denmark, Sweden and most recently Uruguay and New Zealand in letting gay and lesbian couples tie the knot.

In the United States, Washington DC and nine states have legalised same-sex marriage.

The gay community greeted the news with fanfare, with some rights groups dubbing 23 April the "Day of Love".

But opponents gathered outside parliament for a new demonstration.

The leader of the "anti" movement, a female comedian who goes by her stage name Frigide Barjot, has said protests will continue.

Conservatives have vowed to appeal to the Constitutional Council to have it struck down.