The draft law, which has provoked the fury of Turkey, the modern state that emerged from the Ottoman empire, will now be sent from the National Assembly, or lower house of parliament, to the upper house Senate for another reading.
The bill must be ratified by both the upper house Senate and the French president to become law, but Turkey has already warned that today's vote would damage ties between the two NATO allies.
Turkey denies accusations of a genocide of some 1.5 million Armenians during the disintegration of the Ottoman Empire in World War I, arguing that Armenian deaths were a part of general partisan fighting in which both sides suffered.
However, France's Armenian community, which is approximately 500,000-strong and one of the largest in Europe, had pushed hard for the bill and found cross-party support within parliament.
The motion was carried by 106 votes to 19.
The legislation establishes a one year prison term and US$45,000 (A$60,750) fine for anyone denying that a genocide occurred - exactly the same sanctions as those imposed for denying the Nazi genocide of Jews during World War II.
The French government did not support the motion, saying it was up to historians and not parliament to judge the past, but the ruling Union for a Popular Movement (UMP) gave its members a free hand in the vote, ensuring it would pass.
