Introduced by France's socialist opposition, the draft law would make it a crime to deny that the 1915-1917 massacres of an estimated 1.2 million Christian Armenians by Ottoman Turks were an act of genocide.
The bill, passed by the lower house of Thursday, still needs to be approved by the upper house of parliament before it becomes law.
Turkey's foreign ministry said relations between the two countries had been dealt a severe blow by the proposed law.
"French-Turkish relations, which have developed over centuries ... have been dealt a severe blow today as a result of the irresponsible false claims of French politicians," the ministry said in a statement.
The French government had not backed the motion, although it gave its supporters a free vote on the issue, and sought to distance itself from the vote by stressing the importance of ties with Turkey.
In a statement issued by the French foreign ministry, it said the bill was part of a "long legislative process" and described the legislation as "unnecessary and untimely."
The EU, currently negotiating with Ankara on Turkey's entry, to the body, also criticised the parliamentarian's decision.
"Should this law enter into force ... it would prohibit dialogue which is necessary for reconciliation on the issue," said EU spokeswoman Krisztina Nagy.
The motion was carried by 106 votes to 19.
Turkey denies that over one million Christian Armenians were killed as part of genocide during the disintegration of the Ottoman Empire during the first world war, arguing that the Armenian deaths were a part of general partisan fighting in which both sides suffered.
Turks protested outside the
French embassy in Ankara
However, France's Armenian community, which is up to 500,000-strong and one of the largest in Europe, had pushed hard for the bill and found cross-party support within parliament.
"Imagine for a second that Germany today denied the Holocaust. It is totally unacceptable," said French politician Patrick Devedjian, who is of Armenian origin, told French RTL radio.
The legislation establishes a one-year prison term and 45,000 euro ($56,570) fine for anyone denying that a genocide occurred - the same sanctions as those imposed for denying the Nazi genocide of Jews during the second world war.