Spain thrashed France and Germany stunned Romania late on in the semi-finals to set up a final which will be the repeat of the 2017 tournament.
On that occasion Germany won 1-0 but this time round Spain will be favourites following a thumping victory over a France side who were considered to be amongst the best teams in the tournament.
Germany had a much more difficult semi-final, coming from behind against a talented Romania team in a dramatic encounter to score two late goals and secure their place in the final.
Germany 4-2 Romania
The defending champions took the lead in the 21st minute with a brilliant counter-attacking goal.
Nadiem Amiri picked the ball up in his own half and drove towards the Romania defence. Romania seemed hesitant to engage the midfielder and backed off, this proved to be a fatal error as Amiri hit a fierce strike from just outside of the penalty area which beat Ionuț Radu.
Romania were awarded a penalty five minutes later following a VAR review which showed that Timo Baumgartl had mistimed his tackle and kicked Ianis Hagi in the penalty area. George Pușcaș levelled proceedings from the spot despite Germany goalkeeper Alexander Nübel guessing correctly and getting a hand to the ball.
Romania were energised by their equaliser and took the lead two minutes before the end of the half. Andrei Ivan showed some good footwork on the left flank before delivering a pinpoint cross for Pușcaș to plant an excellent header into the net for his second of the game.
Four minutes in the second half Germany were awarded a spot-kick after Hagi pulled the shirt of Borussia Dortmund midfielder Mahmoud Dahoud in the penalty area. Germany's penalty mirrored Romania's spot-kick, with Radu going the right way and getting a hand to the ball but was ultimately unable to stop Luca Waldschmidt's effort from going in.
The game looked to be heading for extra-time until Waldschmidt's low free-kick went under Romania's wall and crept in off the post. Romania were reduced to 10 men shortly afterwards when Alex Pașcanu picked up his second yellow after tugging the shirt of Manchester City loanee Lukas Nmecha on the edge of the box.
Amiri netted his second of the game and made sure of the victory from the resulting free-kick, firing in an effort into the far corner.
Spain 4-1 France
France won a penalty in the 14th minute after former Arsenal midfielder Jeff Reine-Adélaïde made a surging run into the box and was pushed over by Junior Firpo. Jean-Philippe Mateta made no mistake with the penalty, sending Antonio Sivera the wrong way to give Le Bleuets the lead.
Spain responded well and West Ham summer signing Pablo Fornals was only denied from close range by an excellent save from France goalkeeper Paul Bernardoni. Two minutes later he made another good stop from Marc Roca's shot, but this time he could only parry it straight at the midfielder, who made no mistake second time round.
La Rojita were awarded a penalty of their own in added time at the end of the first half when Ibrahima Konaté clipped the heels of Mikel Oyarzabal in the box.
Oyarzabal took the penalty and gave Spain the lead with an assured spot-kick after Bernardoni dived the wrong way.
Spain further stretched their lead just two minutes into the second half with a well-worked team goal. Oyarzabal showed some good poise to evade several France players before delivering a precise through ball to Napoli's Fabián Ruiz who played the ball across goal for the on-rushing Dani Olmo to slot in.
The 2017 finalists added a fourth goal in the 66th minute following another eye-catching passage of play. Fornals executed a sublime cross with the outside of his right foot from the left flank which reached Real Madrid striker Borja Mayoral, who blasted his shot into the far corner.