After a subdued fist half, the game sprung into life in the 64th minute when France full-back Theo Hernandez struck the underside of the bar after a swift break.
The French response was swift, however, with Mbappe finding Benzema who cut inside before unleashing a brilliant curling shot into the far corner to make it 1-1.
Mbappe then grabbed the winner, 10 minutes from the end, racing on to a through ball from Hernandez and keeping his cool to slot past Unai Simon.
“We showed our character against a very strong team. We never gave up,” said Benzema. “It shows what great teams do — never panic, be patient and wait for the right time.”
Luis Enrique’s young Spain side, who had beaten European champions Italy in the semifinals, had played their trademark possession football with patience and precision but in the end could not compensate for the absence of a genuine striker.
“It was a difficult defeat,” said Spain defender Aymeric Laporte. “We have proven to be a great team despite our youth, we have shown better football than them, but what counts is the result.”
Spain protested that Mbappe was offside when he received the ball but the VAR check found a slight touch from defender Eric Garcia had played the France striker onside.
“It’s a shame. I think we did enough not to lose, but in two similar moves we conceded, although the goals were different. The second one, for us on the pitch, looked like offside,” Busquets said. But we have no choice but to congratulate the champions and keep going. We have one more small step left to win trophies and that’s our objective.
“Mbappe was in an offside position, the referee said that Eric goes to play the ball, and that means it’s not offside. That doesn’t make sense to us. You have to try to play the ball, Eric tried to cut out the pass like any defender would, he didn’t miscontrol.”
But Luis Enrique found some solace in his group’s performance despite the defeat.
He said: “I think we competed on the same level as the current world champions, who have a physical potential and quality behind all doubt. We were in the game. It was hard for us at first because they’re new situations for some players.
When we scored in the second half and it looked like we could win, we conceded. They don’t even let you breathe. We’re happy and satisfied.”
France had keeper Hugo Lloris to thank for two late saves as Didier Deschamps’s side held on for the victory against intense Spanish pressure.
Lloris got down well to keep out a low shot from Oyarzabal in the 89th minute and then in stoppage time he reacted superbly to parry a strike from substitute Yeremi Pino.
Nations League, in just its second edition, remains clearly UEFA’s secondary tournament for national sides, as the Italian fans singing of their team’s Euro 2020 triumph reminded, but that didn’t dampen France’s celebrations.
“We did not get off to a good start we were dominated and waited until the first goal to react,” said Pogba, who was crucial to France’s response.
“We know we have to do better. But if it’s the way we have to win, so be it. Winning a trophy is always good. We’re always hungry for those,” he added.
Earlier on Sunday, Italy had claimed third-place in the tournament by beating Belgium 2-1 in Turin.