Match ends, Bulgaria 0, France 1.
Midfielder N'Golo Kante suffered a hamstring injury against Bulgaria as France moved to within one win of qualifying for the 2018 World Cup.
Les Bleus were already leading when the Chelsea player had to be replaced after 34 minutes in Sofia.
Juventus midfielder Blaise Matuidi scored the only goal with a low finish.
France, briefly replaced at the top of Group A earlier on Saturday by Sweden, will seal qualification if they beat Belarus at home on Tuesday (19:45 BST).
Les Bleus top Group A with 20 points, one ahead of Sweden who crushed Luxembourg 8-0.
The victory was Didier Deschamps's 42nd since he took over the national team from Laurent Blanc in 2012 - the most wins by any France coach.
Sweden's final group game is away to the Netherlands on Tuesday (19:45 BST).
The Netherlands, third in the group with an inferior goal difference, are set to miss out on qualifying unless they record a heavy win.
Line-ups
Bulgaria
Formation 4-4-2
- 13Iliev
- 2Popov
- 5Bodurov
- 15Bozhikov
- 3ZanevBooked at 51mins
- 8Nedelev
- 6SlavchevBooked at 9mins
- 7KostadinovBooked at 67mins
- 11ManolevSubstituted forDimitrovat 87'minutes
- 16GalabinovSubstituted forKraevat 48'minutesBooked at 62mins
- 9Delev
Substitutes
- 1Mitrev
- 4Chorbadzhiyski
- 12Kraev
- 14Nedyalkov
- 17Panov
- 19Dimitrov
- 20Raynov
- 21Malinov
- 22Tsvetkov
- 23Makendzhiev
France
Formation 4-3-3
- 1Lloris
- 19Sidibe
- 4Varane
- 5Umtiti
- 17Digne
- 6Tolisso
- 13KantéSubstituted forRabiotat 34'minutes
- 14Matuidi
- 7Griezmann
- 20LacazetteSubstituted forPayetat 76'minutes
- 12MbappeSubstituted forGiroudat 85'minutesBooked at 90mins
Substitutes
- 2Jallet
- 3Amavi
- 8Lemar
- 9Giroud
- 10Payet
- 11Coman
- 15Rabiot
- 16Mandanda
- 18Sissoko
- 21Rami
- 22Kimpembe
- 23Areola
- Referee:
- Antonio Miguel Mateu Lahoz
- Attendance:
- 12,921
Match Stats
- Possession
- Home46%
- Away54%
- Shots
- Home7
- Away10
- Shots on Target
- Home2
- Away2
- Corners
- Home1
- Away4
- Fouls
- Home19
- Away16
Live Text
Post update
Full Time
Second Half ends, Bulgaria 0, France 1.
Post update
Foul by Djibril Sidibe (France).
Post update
Simeon Slavchev (Bulgaria) wins a free kick in the defensive half.
Post update
Foul by Corentin Tolisso (France).
Post update
Bozhidar Kraev (Bulgaria) wins a free kick in the defensive half.
Booking
Olivier Giroud (France) is shown the yellow card for a bad foul.
Post update
Foul by Olivier Giroud (France).
Post update
Vasil Bozhikov (Bulgaria) wins a free kick in the defensive half.
Post update
Corentin Tolisso (France) wins a free kick in the defensive half.
Post update
Foul by Ivaylo Dimitrov (Bulgaria).
Post update
Foul by Olivier Giroud (France).
Post update
Simeon Slavchev (Bulgaria) wins a free kick in the defensive half.
Post update
Corentin Tolisso (France) wins a free kick in the defensive half.
Post update
Foul by Petar Zanev (Bulgaria).
Substitution
Substitution, Bulgaria. Ivaylo Dimitrov replaces Stanislav Manolev.
Substitution
Substitution, France. Olivier Giroud replaces Kylian Mbappe.
Post update
Foul by Adrien Rabiot (France).
Post update
Spas Delev (Bulgaria) wins a free kick on the left wing.
Post update
Foul by Raphael Varane (France).