Lamine Yamal scored twice as Spain produced a superb display to beat France in a nine-goal thriller and set up a Nations League final with Portugal.
The 17-year-old Barcelona forward, one of the contenders to win the Ballon d'Or for the best player in the world this season, helped his side into 4-0 and 5-1 leads in Stuttgart.
But they were nearly pegged back as France staged a thrilling fightback, scoring three times in the last 11 minutes in a desperate attempt to take the game into extra time.
But Spain held on and they will face Portugal in the final in Munich on Sunday, while France take on Germany in Stuttgart in the third-fourth play-off.
Leading 2-0 through goals from Nico Williams and Mikel Merino, Yamal earned a penalty when he was fouled by Adrien Rabiot, and calmly sent goalkeeper Mike Maignan the wrong way from the spot.
Pedri made it 4-0, collecting a Williams pass and clinically finishing before France pulled a goal back through Kylian Mbappe's penalty following a foul by Tottenham's Pedro Porro.
But Yamal grabbed his second and Spain's fifth with a fine low strike and the game looked over.
However, France substitute Rayan Cherki sparked the revival when, on his international debut, he collected Mbappe's pass, flicked the ball up and volleyed home a wonderful strike from 20 yards out to make it 5-2.
Spanish defender Dani Vivian slid the ball into his own net with six minutes left and then, in the third minute of injury time, Randal Kolo Muani headed in Cherki's cross to make it 5-4, but France could not find an equaliser.
Superb entertainment in Stuttgart
This match featured the last two Nations League champions - France in 2021 and Spain two years ago - and both sides had to win penalty shootouts in the quarter-finals, against the Netherlands and Croatia respectively.
But no-one could have expected such an enjoyable match in Stuttgart.
Spain had goalkeeper Unai Simon to thank for a number of fine saves as France, the 2024 World Cup runners-up started brightly.
France's side included Ousmane Dembele and Desire Doue, who had both helped Paris St-Germain beat Inter Milan 5-0 in the Champions League final on Saturday.
Theo Hernandez hit the crossbar and Simon saved from Doue, with Dembele and Rabiot missing chances before two goals in three minutes swung the game Spain's way.
Williams fired his strike into the roof of the net to give them the lead, before Arsenal's Merino grabbed Spain's second goal when he was unmarked in the middle of the France defence and able to finish.
But there was no sign of things to come at half-time as Spain led 2-0, before a remarkable second-half saw seven goals.
Spain led 4-0 and 5-1, but in the end were hanging on at the end of a match that will be talked about for years to come.
Latest Stories
-
My Besiktas move collapsed because my agent asked for more money – Musah Mohammed
14 minutes -
Africa’s Mpox Crisis intensifies as WHO renews Global Public Health Emergency
15 minutes -
I received rave reviews in my first top-flight season in Turkey – Musah Mohammed
24 minutes -
End political interference in anti-corruption investigations – GACC urges
30 minutes -
Government urged to act on pharmacists shortage
43 minutes -
Majority Leader challenges NPP to pick a female running-mate for 2028 general elections
46 minutes -
Hohoe United close in on Rahim Bashiru as new coach
47 minutes -
Photos: Hundreds attend National Day of Prayer and Thanksgiving in Volta region
56 minutes -
See reporting of corruption as a moral duty – FIC
57 minutes -
GBA: Ret. ref Roger Barnor assumes reins as acting prez
1 hour -
Ghana-linked Rome-Jayden Owusu-Oduro signs contract extension at AZ Alkmaar until 2030
1 hour -
Ghana-India trade hits $3 billion amid strong bilateral ties – Foreign Minister
1 hour -
Prime Minister Modi’s visit a defining moment in Ghana-India relations – Okudzeto Ablakwa
1 hour -
‘Prayer and Thanksgiving’ without patriotism, accountability, integrity, is empty- Dr Asah-Asante
2 hours -
Volta regional minister donates National Prayer and Thanksgiving Day proceeds to child welfare home
2 hours