Turkey has condemned a French parliamentary vote which would make it a crime to deny that Armenians suffered "genocide" at the hands of the Turks.
The bill has prompted street protests in Turkey
Turkey called it a "serious blow" to relations and has threatened sanctions. The vote was also criticised by the EU.
The bill, tabled by the opposition but opposed by the French government, needs approval from the Senate and president.
Armenia says Ottoman Turks killed 1.5 million people systematically in 1915 - a claim strongly denied by Turkey.
There are accusations in Turkey that the Armenian diaspora and opponents of Turkey's European Union membership bid are using the issue to stop it joining the 25-member bloc.
Turkey has been warning France for weeks not to pass the bill which was sponsored by the opposition Socialist party.
It 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.
"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 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.
The European Commission has said that if the bill becomes law it will "prohibit dialogue which is necessary for reconciliation" between Turkey and Armenia.
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.
But public debate on the issue has been stifled in Turkey.
The French 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.
Celebration and concern
The French governing Union for a Popular Movement (UMP) did not back the bill, 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.