Within the first 10 minutes, Germany spurned a gilt-edged chance; a long ball forward from goalkeeper Ann-Katrin Berger found Klara Buhl but, after bursting into the box, she could only flash a shot wide.
Berger was heroic for Germany in the quarter-final, making a world-class save to keep her side in the competition, and she was called upon repeatedly throughout the first half, making two excellent stops on the stroke of the interval, one from Esther Gonzalez, and one from Claudia Pina, keeping her sheet clean.
In the second period, the game descended into something of a midfield battle, but Die Nationalel had the best chance after the hour mark, as Buhl was once again set free of the Spanish backline, but her effort was well saved by Catalina Coll.
Buhl completed a hat-trick of near-misses with six minutes to go, as her free-kick from the edge of the box whistled just past Coll's post as she scrambled to get across. In injury-time, the Spanish 'keeper made a truly superb double save to keep Spain in the game, first clearing a looping effort off her line from underneath the crossbar, before denying Carlotta Wamser from close-range.
Like England's clash with Italy on Tuesday, the game went to extra time as the two exhausted teams struggled for fluency, but Spain found the breakthrough in the 112th minute, as Bonmati, the Ballon d'Or winner, beat Berger at her near post with a clever, powerful finish from an acute angle. The goalkeeper, for all of her heroics, had to do better.
Spain will now face England in Sunday's final.