I. félidő
Az első percekben Kroos és Pedri párosáról szólt főként a játék: a németek középpályása kétszer is felrúgta a spanyolok fiatalját, akit a nyolcadik percben le is kellett cserélni, a helyén Dani Olmo folytatta. Kroos egyik belépőért sem kapott sárga lapot. Yamal próbált eltekerni egy szabadrúgást a sorfal alatt, de méterekkel célt tévesztett, aztán percekkel később Morata távoli lövésébe léptek bele a német védők.
A 21. percben a házigazda is helyzettel jelentkezett: Havertz fejesét fogta könnyedén Unai Simon. Később ez a forgatókönyv megismétlődött, Havertz ezúttal a 16-oson kívülről, jobbal próbálkozott, Simonról ez a labda sem pattant ki. Az első félidő hajrájában még Olmo kínálta meg messziről Neuert, a rutinos kapus csak ütni tudta a próbálkozást, de így sem került bajba Németország.
II. félidő
A fordulást követően Yamal passza után került helyzetbe Morata, aki lefordult védőjéről, majd a kapu fölé emelt. Az 51. percben aztán megtört a jég: Yamal jobbról gurított középre laposan, ott az érkező Dani Olmo jobbal, a jobb alsóba passzolt, ezzel előnybe kerültek a spanyolok.
A bekapott gól után rákapcsoltak a németek, a csereként beáltt Wirtz lövése a blokkról lepattanva ment szögletre a 60. percben, majd Andrich 16-ról leadott löketét védte szépen Simon. Tovább folytatódtak a német rohamok; Havertz közeli lövése Carvajalban akadt el a 72. percben. Öt perccel később minden eddiginél közelebb járt az egyenlítéshez Németország: egy jobbról bejövő Wirtz7-beadás után a középen érkező Füllkrug estében a bal kapufát találta telibe.
Simon pocsék kirúgása után újabb nagy lehetőség adódott a németek előtt: a spanyolok kirúgása után Havertz emelte át a kimozduló kapust, a csatár azonban a kapu tetejére emelt. Fabian Ruiz 17 méteres lövése jócskán fölé ment a 84. percben. A 89. percben összejött a németek egyenlítése: Mittelstädt balról ívelt a hosszú irányába, ahonnan Kimmich visszafejelt Wirtz elé, ő pedig egyből, a jobb kapufa segítségével a hálóba lőtt, ezzel hosszabbításra mentette a meccset.
Hosszabbítás
A hosszabbítás első félidejében a spanyolok visszajöttek kissé a meccsbe, újra elkezdte tartani a labdát a de la Fuente csapata. A 104. percben Oyarzabal távoli tekerése ment el centikkel a kapu mellett. A 105. percben Wirtz közel járt a második góljához, egy balról betett labdát lőtt kapu mellé a fiatal támadó.
A 106. percben Cucurella kezezett a 16-oson belül, azonban sem a játékvezető, sem a VAR nem ítélt büntetőt. Egy kontra végén Füllkrug ballal csúnyán a kapu mellé lőtt, a 117. percben viszont remekül csúsztatta meg Kimmich beadását, Simon vetődve védett. Mikor már úgy tűnt, mindenki a 11-esekre készül, Dani Olmo balról tekert középre, ahol a csereként beállt Merino érkezett, és a jobb felsőbe fejelt. Carvajal a 125. percben megkapta a második sárgáját, így a kiállítás sorsára jutott.
Spanyolország így bejutott az elődöntőbe, ahol a francia-portugál párharc győztesével találkozik majd.
Európa-bajnokság, negyeddöntők
Spanyolország-Németország 2-1 (Olmo 51., Merino 119. ill. Wirtz 89.) - hosszabbítás után
Kiállítva: Carvajal 125.
Spanyolország: Unai Simon - Carvajal, Le Normand (Fernandez, a szünetben), Laporte, Cucurella - Rodri, Fabian Ruiz (Joselu, 102.) - Yamal (Ferran Torres, 63.), Pedri (Olmo, 8.), Williams (Merino, 80.) - Morata (Oyarzabal, 80.)
Németország: Neuer - Kimmich, Rüdiger, Tah (Müller, 80.), Raum (Mittelstädt, 57.) - Can (Andrich, a szünetben), Kroos - Musiala, Gündogan (Füllkrug, 57.), Sané (Wirtz, a szünetben) - Havertz (Anton, a hosszabbítás előtt)