Battu 4-3 à l'aller, le Real Madrid, treize fois champion d'Europe (un record), absent en finale depuis sa victoire, 3-1, de 2018 contre Liverpool, entendait bien cette fois rester dans les clous jusqu'au dernier acte.
ManCity, battu 1-0 par Chelsea l'an dernier, espérait pour sa part avoir l'occasion d'effacer cet échec face à une autre équipe anglaise, Liverpool, le samedi 28 mai au Stade de France.
A la mi-temps c'est Thibaut Courtois qui avait été le gardien le plus sollicité, notamment sur un tir de Bernardo Silva, bien servi par Kevin De Bruyne (20e), puis sur une frappe du pied droit des 20 mètres avec rebond de Phil Foden (40e).
On a assisté à une flambée du Real à la reprise. Mais Vinicius Jr a manqué une occasion XXL (46e) , et Manchester City a fait le gros dos pendant ce quart d'heure difficile, avant de prendre l'ascendant sur une action rapide et tranchante.
Servi par Ilkay Gündogan, qui avait remplacé Kevin De Bruyne une minute plus tôt (sic !), Bernardo Silva a ouvert sur la droite de la surface, où Riyad Mahrez a conclu victorieusement sans contrôle du pied gauche (0-1, 73e), avant de céder sa place à Fernandinho (85e).
Rodrygo, qui avait remplacé Toni Kroos à la 68e, a arraché les prolongations en égalisant juste avant les six minutes de temps additionnel sur un assist de Karim Benzema, puis en marquant à la 90e+2 en reprenant puissamment de la tête hors de portée d'Ederson, un magnifique centre de Dani Carvajal, côté droit, dévié par Marco Asensio: 2-1 ! Prolongations.