The lower house of the French parliament on Friday passed a government-sponsored amendment that would mean up to a year in prison and fines of up to 45,000 euros for "denial or trivialisation" of events that jurisprudence has established as genocide, war crimes or "other crimes against humanity".
The measure must now be passed to the Senate.
At present only holocaust denial is subject to such a ban.
The move aims to fulfil a 2012 campaign promise by President François Hollande and will anger Turkey, which has recently protested at the German parliament's vote to declare the Armenian killings genocide and Pope Francis's use of the term on a visit to Armenia.
The French parliament passed an Armenian genocide law in 2001 and tried to ban denial in 2012.
But that law, which made it illegal to negate acts that parliament had decided were crimes against humanity, was blocked by the Constitutional Council on the grounds that it was a limit on freedom of expression.
The latest amendment aims to get round this by leaving the definition of a crime against humanity to jurisprudence, although courts' judgements must obviously be based on laws passed by parliament.
"This text will punish the challenge or the trivialisation of all crimes against humanity and war crimes," said Ericka Bareigts, the junior minister in charge of equality.
That included the 1915-1917 killings that Armenians say wiped out some 1.5 million of their people, she said.
Turkey claims the figure was no higher than 500,000 and that at least as many Turks were killed.
The bill also allows NGOs that campaign on slavery issues to tale legal action on the question.
For more background read France's Armenian genocide bill - Who? What? When? Where? Why?
Read our reports from Turkey's November 2015 parliamentary election