Man City reached the Champions League final for the first time in their history with a brilliant 4-1 aggregate win over Paris Saint-Germain.
Pep Guardiola’s side also made history with their seventh consecutive win in Europe, breaking the previous British record of six.
City had an early scare when referee Bjorn Kuipers awarded PSG a penalty for handball against Oleksandr Zinchenko.
City protested and, with replays indicating the ball had brushed the Ukrainian’s shoulder rather than his arm, the official changed his decision after checking the pitchside monitor.
City took a firm grip on the tie as they broke clear to score after 11 minutes.
Ederson released Zinchenko with a wonderful long ball over the top and the full-back picked out De Bruyne.
The Belgian’s shot was blocked but Riyad Mahrez followed up to tuck home the rebound.
PSG pushed to get back into the game and twice went close as Marquinhos headed against the bar and Angel Di Maria shot wide of an open goal after Bernardo Silva was dispossessed.
Both sides wanted to attack but it remained 1-0 at half-time. Mahrez had another good chance but Keylor Navas blocked his close-range effort.
PSG threw everything at City in the second half but the hosts defended superbly. Neymar burst into the area but Zinchenko produced a fine sliding challenge to deny the Brazilian and Ruben Dias blocked a volley from Ander Herrera.
City then snatched another vital goal as they caught PSG on the counter-attack. Phil Foden exchanged passes with De Bruyne and sent a low ball into the area for Mahrez to tuck in at the far post, making it 2-0 on the night and 4-1 on aggregate.
That seemed a killer blow for PSG, who then lost their discipline. Di Maria became the second PSG player to be sent off in the tie for stamping on Fernandinho as he went to retrieve the ball for a throw-in.