France 2-1 Denmark: Player ratings as Mbappe brace sends Les Bleus to last 16
Reigning champions France became the first side to advance to the knockout stages of the 2022 World Cup following a late 2-1 win over Denmark.
The Danes beat Les Bleus twice in the Nations League this year but Didier Deschamps' men were much improved on Saturday to claim their second Group D win from two games.
France's first half chance came when a deep Theo Hernandez cross was headed back by Adrien Rabiot towards Olivier Giroud, but Christian Eriksen arrived just in time to poke the ball off his toe with the goal gaping.
Rabiot's next header was one directed towards goal, rising high ahead of Victor Nelsson to meet a great cross from Ousmane Dembele, with Kasper Schmeichel providing an instinctive save to keep the Juventus man out.
A half-volley from Jules Kounde was blocked off the line by Pierre-Emile Hojbjerg and Schmeichel denied Antoine Griezmann at his near post from close range as France's first half domination continued.
Denmark's first opportunity of note came on the counter attack with Jesper Lindstrom releasing Andreas Cornelius into the right channel, but his effort from a tight angle went harmlessly wide of Hugo Lloris' goal.
Dembele continued to have the freedom of the right flank and came close to providing an assist for Kylian Mbappe, but the PSG forward couldn't keep his strike from 12 yards down.
After the break, Mbappe spun and burst away from Joachim Andersen before sprinting 40 yards before goal, only for Giroud to block his path and making his shot at goal easier for Schmeichel to deal with.
Griezmann should have opened the scoring after racing to meet Aurelien Tchouameni's wonderfully timed ball over the top of the defence, but he lost his composure and his strike sailed way over the top.
And France finally found the goal they deserved on the hour mark through Mbappe. The forward linked up superbly with Hernandez down the left flank, with the Milan full-back getting to the byline and pulling back for Les Bleus' number ten to fire home via a deflection off of Andreas Christensen.
However, Denmark found a leveller shortly after. Christian Eriksen's corner was nodded on by Andersen, and Andreas Christensen nipped in ahead of Rabiot to head past Lloris.
That seemed to kick the Danes into gear and spook France, with Mikkel Damsgaard pulling back to a free Lindstrom inside the box. However, Lloris threw out an arm and denied the Frankfurt forward.
Denmark were let off the hook when Andersen completely missed a header from a corner allowing Aurelien Tchouameni to ghost in, but Joakim Maehle was able to provide a vital block.
Former Barcelona striker Martin Braithwaite came close to punishing current Barça defender Jules Kounde after getting in front of him to Kasper Dolberg's venomous cross through the penalty area, though his shot could only find the side netting.
France re-took the lead in the last five minutes of normal time as Mbappe ghosted in behind Rasmus Kristensen to nod in Griezmann's deep cross to seal the three points and leave Denmark's hopes of qualification hanging in the balance.
1. France (4-2-3-1)
GK: Hugo Lloris - 5/10 - Didn't have a lot to do. Relied on his defenders to spread the play.
RB: Jules Kounde - 6/10 - A little lucky not to have been sent off for a challenge on Nelsson. Was decent at the back but offered little the other way.
CB: Raphael Varane - 7/10 - Calmly defended with ease and was largely untroubled.
CB: Dayot Upamecano - 7/10 - Denmark tried to build most of their attacks down Upamecano's side and he tended to respond well.
LB: Theo Hernandez - 6/10 - Provided great width but gave up a bit of space at the back.
CM: Aurelien Tchouameni - 7/10 - Another strong performance in the absence of Paul Pogba and N'Golo Kante.
CM: Adrien Rabiot - 5/10 - Roamed forward with menace but lacked discipline a concerning amount.
RM: Ousmane Dembele - 8/10 - Created plenty of havoc down the wing and carried a lot of the attacking load.
AM: Antoine Griezmann - 8/10 - Again dropped deep into midfield at times, providing the link between them and the forward line.
LM: Kylian Mbappe - 9/10 - Every time he got the ball, fans rose to their feet in anticipation. Another scintillating display.
CF: Olivier Giroud - 5/10 - Was largely unselfish again but his frantic second-half display will have contributed to the decision to substitute him.
SUB: Marcus Thuram (63' for Giroud) - 5/10
SUB: Ibrahima Konate (75' for Varane) - 5/10
SUB: Kingsley Coman (75' for Dembele) - 5/10
SUB: Youssouf Fofana (90' for Griezmann) - N/A
Manager: Didier Deschamps - 6/10 - France played on the front foot throughout and were good value for their win.
2. Denmark (3-4-3)
GK: Kasper Schmeichel - 6/10 - Kept France at bay as much as he could.
CB: Joachim Andersen - 3/10 - Torn apart time after time. Guilty of switching off several times.
CB: Andreas Christensen - 7/10 - Denmark's most reliable defender. Got a goal for his troubles.
CB: Victor Nelsson - 4/10 - Found it hard living with Dembele.
RM: Rasmus Kristensen - 3/10 - Provided little support for Andersen and didn't offer a lot on the front foot.
CM: Pierre-Emile Hojbjerg - 6/10 - Broke up a number of France breakaways. Covered every blade of grass.
CM: Christian Eriksen - 5/10 - Set piece delivery had France scrambling but found open play contributions harder to come by.
LM: Joakim Maehle - 5/10 - Got into good positions, though his tangible impact was limited.
RF: Jesper Lindstrom - 6/10 - Popped up in pockets of space to France's annoyance and was their main headache from open play.
LF: Mikkel Damsgaard - 5/10 - Played on the fringes of the game. His most notable moment came with his final action, pulling back for Lindstrom to fire at Lloris.
CF: Andreas Cornelius - 4/10 - Spurned a half-chance and was generally unhelpful. Hooked at the break.
SUB: Martin Braithwaite (46' for Cornelius) - 6/10 - Brought great energy and was a much better bit than Cornelius.
SUB: Kasper Dolberg (73' for Damsgaard) - 5/10
SUB: Christian Norgaard (85' for Lindstrom) - N/A
SUB: Alexander Bah (90' for Kristensen) - N/A
Manager: Kasper Hjulmand - 4/10 - Denmark were horribly unambitious, especially considering they've had France's number this year.