Chelsea upset the odds and ended another Manchester City European dream to win the Champions League by a 1-0 scoreline in front of an electric 16,500-strong crowd at the Estadio do Dragao on Saturday evening.
Both sides demonstrated their commitment to attacking football in the opening exchanges as the crowd enjoyed end-to-end football, with Timo Werner spurning a couple of golden opportunities to break the deadlock as City struggled to weave any clear-cut chances.
An early injury to veteran defender Thiago Silva failed to dampen the spirits of a fired-up Chelsea, who eventually drew first blood in the 42nd minute as Kai Havertz latched onto a magnificent through ball from Mason Mount before skipping past Ederson and slotting home.
Man City's uphill battle got even steeper in the final 30 minutes as Kevin De Bruyne came out of a collision with Antonio Rudiger with a black eye and was forced to leave the field in tears against his former club.
Pep Guardiola's side started to turn the screw in the second period but the Blues' defence held firm, with Reece James and Cesar Azpilicueta providing admirable protection at the back. Sergio Aguero was brought on for the final 15 minutes of his Man City career as City desperately searched for an equaliser.
However, each member of Chelsea's staunch rearguard produced heroic performances to shut up shop for the night and force City to keep waiting for their maiden Champions League crown, as Thomas Tuchel went one better than he did against Paris Saint-Germain last year on a historic Chelsea evening in Porto.
8th min: An astonishing long ball from Ederson gets Raheem Sterling down the left and into the Chelsea area, but Reece James gets a vital touch to turn it behind for a corner, which comes to nothing.
10th min: End-to-end stuff as Timo Werner fluffs a magnificent chance for Chelsea to take the lead before Ben Chilwell gets a vital touch to stop a City player getting on the end of Sterling's low cross.
15th min: A swift Chelsea move ends with Werner being presented with the chance to rectify his earlier error, but he hits the ball low and comfortable for Ederson before winning a corner with a strike deflected off John Stones.
17th min: City are forced into more defending as N'Golo Kante manages to out jump Sterling in the penalty area, but his header is wide of the mark.
27th min: Kevin De Bruyne picks out Phil Foden in a brilliant position in the Chelsea area, but his touch is slightly heavy and Antonio Rudiger makes a world-class challenge to deny him a Champions League final goal.
37th min: Kante starts a Chelsea counter-attack and Havertz receives the Frenchman's pass, but Oleksandr Zinchenko adds to the early collection of vital defensive challenges to thwart the German. An early injury for Thiago Silva forces Tuchel into an early change as Andreas Christensen comes on.
42nd min: The deadlock is broken. City are totally open at the back and Mount plays a delightful through ball into Havertz, who skips past an onrushing Ederson to tap home into an empty net. 0-1 Chelsea.
45 + 1 min: Kante's cheeky chip finds Werner in the area, but the German cannot get a clean connection as he turns and fires a tame effort wide of the mark.
55th min: Chelsea free kick in a promising position as Ilkay Gundogan brings down Havertz out on the right, but City survive.
60th min: Lengthy delay as De Bruyne collides with Rudiger and comes off worse. The Belgian playmaker is forced to leave the field in tears - with a swollen eye to boot - and Gabriel Jesus is on.
60th min: Huge shouts for a City penalty as Sterling's effort hits James in the midriff, but the referee and VAR wave play on.
61st min: Foden tries an effort from distance but his effort is far too high and wide to trouble Edouard Mendy.
68th min: Free-flowing football from Manchester City nearly sees Gundogan equalise with a tap-in, but Cesar Azpilicueta makes a crucial interception to divert it behind.
73rd min: Christian Pulisic spurns a gilt-edged chance to put Chelsea two goals to the good as his dinked effort bounces just wide of the post.
76th min: Mount drags a shot well wide of the mark as Sergio Aguero prepares to come on for the final time in Man City colours.
82nd min: Walker catches Chilwell on the left-hand side and Chelsea win a free kick in a good position. A long-range effort from Jorginho following the dead-ball situation is well wide.
85th min: James misjudges a long ball and Aguero tries to pick out a teammate at the far post, but Mendy uses every inch of his 6ft 5in frame to collect the Argentine's cross.
90th min: A late scramble in the Chelsea area leads to substitute Christensen making the vital clearance as the team enter seven minutes of injury time.
90 + 7 min: Everyone in the stadium stands and watches as Mahrez's effort sails towards goal, but the Algerian's strike is a whisker too high and City's time is up.
MAN OF THE MATCH - REECE JAMES
Raheem Sterling's selection raised eyebrows before a ball was kicked at the Estadio do Dragao, and it was a move that did not pay dividends as Reece James left Portugal with his compatriot in his pocket.
The full-back has flourished in Tuchel's system and was one of a number of standout Chelsea performances - with N'Golo Kante and Cesar Azpilicueta deserving special mentions - but James nullified the threat of Sterling all evening and deserves the winners' medal around his neck.
A horrific collision between Antonio Rudiger and Kevin De Bruyne saw the former's protective mask prevent him from doing any major damage to himself, but De Bruyne worryingly spent a few moments on the ground before emerging with a black eye.
The Belgian playmaker had made a habit of influencing games against his former club prior to the final, but his substitution made City's unenviable task monumentally more difficult - even if he was largely ineffective on the night - and he could only watch on painfully from the sidelines as his side succumbed to a devastating defeat.
Possession: Manchester City 60%-40% Chelsea
Shots: Manchester City 7-8 Chelsea
Shots on target: Manchester City 1-2 Chelsea
Corners: Manchester City 3-1 Chelsea
Fouls: Manchester City 14-13 Chelsea
MANCHESTER CITY (4-3-3): Ederson; Walker, Dias, Stones, Zinchenko; Gundogan, B. Silva (Fernandinho 64'), Foden; Mahrez, De Bruyne (Jesus 60'), Sterling (Aguero 77')
CHELSEA (FORMATION): Mendy; Azpilicueta, T. Silva (Christensen 39'), Rudiger; James, Jorginho, Kante, Chilwell; Mount (Kovacic 80'), Havertz; Werner (Pulisic 66')