Spain came back to beat France 2-1 in Munich to set up a final between either the Netherlands or England.
France took the lead after Randal Kolo Muani headed in a Kylian Mbappe cross in the ninth minute.
Yamal, who turns 17 a day before Sunday’s final against either the Netherlands or England in Berlin, got the equalizer with a superb strike from outside the box, curling a long-range effort into the top corner and past the fingertips of Mike Maignan.
Spain revitalized and took the lead in the 25th minute as Dani Olmo’s shot was deflected by Jules Kounde.
Yamal, who already has three assists at Euro 2024, is the youngest scorer in the competition’s history.
Three-time champions Spain becomes the first team to win six games at a Euros and are one game away from a record-breaking fourth crown.