Substitute Paul Pogba produced a piece of magic to help set up Kylian Mbappe for France's winner in a 2-1 victory over Croatia.
Les Bleus started with real intensity and grabbed an early goal through Antoine Griezmann's powerful close-range finish. Croatia left him free in the area and he pounced after Ferland Mendy's cross was only half-cleared.
Just seven minutes later, it really should have been two. Mbappe and Anthony Martial were getting in behind the home defence with ease, but the former missed with the goal gaping after a brilliant one-two into the area.
France's forward Antoine Griezmann (L) vies for the ball with Croatia's midfielder Luka Modric
Image credit: Getty Images
Martial felt aggrieved when the referee waved away his penalty claims on 19 minutes. Domagoj Vida appeared to bring him down as he was about to shoot; were VAR available, the outcome would surely have been different.
As the half wore on, the hosts grew into the game. France's narrow midfield diamond left space out wide, and Croatia's best chance fell to Mario Pasalic. The former Chelsea man couldn't guide a shot goalwards in a crowded area.
France got a warning from Ivan Perisic immediately after the break, when he fired a cross in from the byline to no avail. Mateo Kovacic's introduction made a real difference, too.
Five minutes past the hour, Croatia struck via Nikola Vlasic's guided finish. Hugo Lloris had no chance of stopping it; France needed to regroup.
Pogba was soon introduced and made a real impact. First, he saw a shot saved by Dominik Livakovic before picking out Lucas Digne with a wonderful pass before the full back crossed for Mbappe, who broke Croatian hearts as he did in the World Cup final two years ago.
TALKING POINT - Class tells as France edge battling hosts
Croatia are still without a win against France, and they are still not over that World Cup defeat. For long spells, they looked like avenging it; after a strong start, France lost control of the tempo and they punished them. Pogba's introduction, though, turned the game on its head. His pass for Digne, who crossed for Mbappe was superb. The PSG man deserves credit for finishing after a terrible miss in the first half.
MAN OF THE MATCH - Ivan Perisic (Croatia)
Perisic deserved more on the night. Croatia were able to get a foothold in the match because they exploited France's narrow set-up by funnelling the ball out wide. The Inter man had a hand in Pasalic's first half chance and almost laid the ball on for a willing runner just seconds after the break.
Kylian Mbappe (L) celebrates with France's midfielder Eduardo Camavinga
Image credit: Getty Images
Croatia: Livakovic 6, Uremovic 6, Lovren 5, Vida 6, Barisic 6, Badelj 6, Modric 7, Pasalic 7, Vlasic 7, Perisic 7, Petkovic 6. Substitutes: Brekalo 5, Kovacic 7, Budamir 6, Kramaric 6, Bradaric 5
France: Lloris 6, Mendy 6, Varane 6, Lenglet 6, Digne 6, Tolisso 6, N'Zonzi 7, Rabiot 6, Martial 7, Mbappe 7, Griezmann 7. Substitutes: Coman 5, Camavinga 5, Pogba 7, Giroud n/a, Hernandez n/a
8' GOAL! - France lead, Griezmann's finish is emphatic. It is poor defending, as Croatia fail to clear Ferland Mendy's cross and left him free in the area.
65' GOAL! - Vlasic scores! It is the least Croatia deserve after picking up in the last 15 minutes of the first half.
79' GOAL! - Mbappe finishes, but what a ball by Pogba!
France conceded their first away goal in five matches