Spain lost 1-0 to Germany in the 2017 final and will now have its chance for revenge in Udine on June 30. In the first semifinal, in Bologna, Amiri gave Germany the lead in the 21st minute after racing from inside his own half but George Puscas leveled from the spot following a foul by Timo Baumgartl on Ianis Hagi.
And Romania, which was making only its second appearance in the competition, took the lead on the stroke of halftime when Puscas headed in. Germany leveled shortly after the break when Waldschmidt converted a spot kick after Hagi was penalized for pulling on Mahmoud Dahoud's shirt.
As the match appeared headed for extra time Germany scored after Amiri backheeled a free kick into Waldschmidt's path and the Freiburg forward fired into the bottom right corner. It got worse for Romania as defender Alex Pascanu was sent off for a last-man foul on Lukas Nmecha and Amiri sealed the match with another free kick.
There was also a penalty for each side in Reggio Emilia. Jean-Philippe Mateta gave France the lead from the spot in the 16th after Junior Firpo pushed over Jeff Reine-Adelaide. But Marc Roca equalized when he tapped in a rebound and Mikel Oyarzabal fired Spain in front with a penalty in first-half stoppage time after being tripped by Ibrahima Konate.
Dani Olmo extended Spain's advantage immediately after the break and substitute Borja Mayoral scored four minutes after coming off the bench.
More AP soccer: https://apnews.com/apf-Soccer and https://twitter.com/AP_Sports