Portés par un public acquis à leur cause, les Anglais sont rapidement entrés dans le match, signant de bonnes séquences offensives, mais les Danois n'ont pas tardé à se montrer dangereux. Ils ont été les premiers à ouvrir le score grâce à un magnifique coup franc inscrit par le jeune Mikkel Damsgaard à la 30e minute.
Après avoir encaissé leur premier but lors de l'Euro, les «Three Lions» ont poussé pour égaliser, accentuant leur pressing dans le camp adverse.
Et c'est grâce à un but contre son camp du capitaine danois Simon Kjaer après un centre du joueur d'Arsenal Bukayo Saka vers Raheem Sterling que l'Angleterre a recollé au score à la 39e minute.
En début de seconde période, les débats se sont équilibrés et les occasions se sont succédé de part et d'autre. Les portiers anglais Jordan Pickford et danois Kasper Schmeichel ont également brillé, réalisant plusieurs parades pour sauver les siens.
L'Angleterre a ensuite pris le dessus dans le jeu, monopolisant le ballon et allant vers l'avant pour prendre l'avantage, mais sans grande réussite.
Les deux équipes, qui ne sont pas parvenues à se départager au terme du temps réglementaire, ont enchaîné avec les prolongations, mais ce sont les Anglais qui ont réussi à imposer leur rythme dès les premières minutes continuant sur leur lancée de la 2e mi-temps.
Les efforts des hommes de Gareth Southgate ont payé à la 104e minute grâce à un penalty marqué en deux temps par le capitaine de l'Angleterre Harry Kane après une faute sur Sterling dans la surface de réparation.
Ce penalty contesté par les joueurs danois a donné la victoire aux «Three Lions» qui se qualifient à la finale de l'Euro pour la première fois de l'histoire. Dimanche à Wembley, ils affronteront l'Italie pour tenter de décrocher enfin le titre européen.