The French parliament has adopted a bill making it a crime to deny that Armenians suffered "genocide" at the hands of the Turks, infuriating Turkey.
Ethnic Armenian campaigners in France hailed the result
The bill, proposed by the Socialists and opposed by the government, needs approval from the Senate and president.
Turkey called the decision a "serious blow" to relations with France. It has already threatened economic sanctions.
Armenia says Ottoman Turks killed 1.5 million people systematically in 1915 - a claim strongly denied by Turkey.
The European Commission has said that the bill, if passed into law, will "prohibit dialogue which is necessary for reconciliation" between Turkey and Armenia on the issue.
Turkey has been warning France for weeks not to pass the bill.
"Turkish-French relations, which have been meticulously developed over the centuries, took a severe blow today through the irresponsible initiatives of some short-sighted French politicians, based on unfounded allegations," the Turkish foreign ministry said.
The bill sponsored by the opposition Socialist party provides for a year in jail and a 45,000-euro (£30,000) fine - the same punishment that is imposed for denying the Nazi Holocaust.
The ruling Union for a Popular Movement (UMP) did not back the law, but gave its deputies a free vote.
It passed by 106 votes to 19, after most deputies left the chamber in protest against what critics say is an attempt to attract votes of the some 500,000 people of Armenian descent in presidential elections next year.
Ethnic Armenians in Paris celebrated the result.
"The memory of the victims is finally totally respected," said Alexis Govciyan.
But French Prime Minister Dominique de Villepin distanced himself from the bill.
It is "not a good thing to legislate on issues of history and of memory," he said.
The vote came as controversial Turkish writer Orhan Pamuk won the 2006 Nobel Prize in Literature.
He has faced prosecution in Turkey for talking about the murder of hundreds of thousands of Armenians during World War I and thousands of Kurds in subsequent years.
The charges have since been dropped.
EU membership bid
Debate on the Armenian issue has been stifled in Turkey.
Arguments have raged for decades about the Armenian deaths
The official Turkish position states that many Christian Armenians and Muslim Turks died in fighting during World War I - but that there was no genocide.
The BBC's Sarah Rainsford in Istanbul says many Turks are angry at what they see as double standards in the EU, where opinions are sharply divided about whether Turkey should be allowed to join.
Turkey's chief negotiator in EU membership talks, Ali Babacan, said: "This is violating one of the core principles of the European Union, which is freedom of expression."
"Leave history to historians," he added.
France's President Chirac and Interior Minister Nicolas Sarkozy have both said Turkey will have to recognise the Armenian deaths as genocide before it joins the EU - though this is not the official EU position.
There are accusations in Turkey that the Armenian diaspora and opponents of Turkey's EU membership bid are using this issue to prevent Turkey joining the 25-member bloc.