After a goalless first half in which the defending champions dominated but failed to convert, defender Theo Hernandez linked up with the electric Mbappe, whose shot deflected off the heal of Andreas Christensen and into the back of the net to give France the lead in the 61st minute.
Denmark levelled seven minutes later, with Christensen making up for the deflection by blasting a powerful header past distraught French goalkeeper Hugo Lloris.
Mbappe finished the job in the 86th minute, converting on a cross from Antoine Griezmann and propelling the ball into the back of the net with his thigh.
France top Group D with six points, three ahead of Australia, who beat Tunisia 1-0 earlier in the day, with the Danes and the Tunisians both on one point.
France take on Tunisia and Denmark meet Socceroos in the final round.