Mbappe was adjudged to be inside when he slid the ball under Unai Simon after Karim Benzema’s stunning equaliser at Milan’s San Siro.
Spain had taken the lead through Mikel Oyarzabal, who shrugged off defender Dayot Upamecano to beat Hugo Lloris.
Lloris produced two late saves to ensure victory for the world champions.
He first denied Oyarzabal before acrobatically keeping out Yeremi Pino’s effort in stoppage-time as France became the competition’s second winners after Portugal in 2019.
But Mbappe’s winner proved to be a moment of debate with the goal standing even though the Paris St-Germain striker was in an offside position when Theo Hernandez played the initial through ball. (BBC)