Spain fought back to beat France with a stunning Lamine Yamal strike and a Dani Olmo goal to book a spot in Sunday’s final.