Inbytt i den åttonde minuten och målskytt tidigt i den andra halvleken.
Det var nära att Dani Olmo skulle bli ensam målskytt i kvartsfinalen mellan Spanien och Tyskland.
Men Florian Wirtz kvitterade i 89:e minuten och det blev förlängning.
Matchen rörde sig mot straffläggning när Olmo slog ett perfekt inlägg till Mikel Merino som nickade in 2–1 till Spanien i 119:e minuten.
”Rätt lag går vidare”
Nattsvart för värdnationen Tyskland.
Spanien är klart för semifinal och Tysklands EM är över.
– Det ligger mycket arbete bakom, särskilt från mina lagkamrater, som gjorde ett fantastiskt jobb, och att de kvitterade i den 90:e minuten var en uppförsbacke, men det är en belöning för uthålligheten och jag tycker att vi förtjänar det, säger målskytten Merino och fortsätter:
– Det är en match vi alla väntat på, mellan två av de bästa lagen i världen. Det kan vara en VM-final eller en EM-final. Vi har visat att vi vet hur vi ska lida, att vi har ett fantastiskt lag.
Hos Tysklands Toni Kroos, som nu avslutar sin fotbollskarriär, var besvikelsen stor.
– Vi hade ett gemensamt mål när vi kom hit, men drömmen som vi alla hade har gått i kras.
Spanien möter Frankrike i semifinal.