Olivier Giroud converted a late penalty as France staggered to a 2-1 win against a Moldova side ranked 175th in the world on Thursday hours after securing a place at Euro 2020.
World champions France, who lost the Euro 2016 final as hosts to Portugal, were guaranteed a ticket to next year's tournament before kick-off in Paris following a 0-0 draw between Turkey and Iceland.
However, their hopes of turning the final home qualifier into an evening of celebration at a chilly Stade de France were compromised when Vadim Rata punished abject defending to give Moldova a shock ninth-minute lead.
Raphael Varane levelled for France 10 minutes before halftime, triggering furious protests from Moldovan players and their coach who argued goalkeeper Alexei Koselev was fouled by Giroud.
The Chelsea forward grabbed the winner from the spot 11 minutes from time after Lucas Digne was cut down in the box to leave France two points clear of Turkey at the top of Group H.
France round out their qualification campaign away to Albania on Sunday in what will be Didier Deschamps' 100th match in charge while Turkey travel to Andorra.
Deschamps recalled Kylian Mbappe and N'Golo Kante from injury here while Giroud was handed a start despite playing just 20 minutes for Chelsea since last month's international break.
Turkish coach Engin Firat, who replaced Semen Altman as Moldova boss two weeks ago, could not have dreamed of a better start to his reign when Clement Lenglet twice failed to head clear and Rata muscled his way past the Barcelona defender to poke beyond Steve Mandanda.
It was just the third goal Moldova, who lost 4-1 to France in their opening qualifier last March, had scored in nine group matches.
France created a series of chances in reply with Benjamin Pavard volleying low past the far post before Giroud stabbed wide from close range.
Mbappe then sliced over from a tight angle and drew a sharp stop from Koselev with a 20-yard drive while a diving Giroud again headed wide.
Varane hauled the hosts level with a fiercely disputed equaliser as Koselev spilt a free-kick under pressure from Giroud, allowing the France captain to nod home and sparking an angry reaction from the visitors – with Firat booked for his touchline protestation.
Mbappe, who sat out the October fixtures with Iceland and Turkey due to a thigh complaint, was denied by a courageous block from Ion Jardan near the hour mark but Moldova's brave resistance was ended on 79 minutes.
Veaceslav Posmac chopped down Everton left-back Digne inside the area and Giroud confidently stepped up to side-foot home the spot-kick for his 39th international goal, leaving him two adrift of France great Michel Platini.