The Blues clinched their first Champions League title since 2012 as Pep Guardiola’s long wait for a European title with City stretches on.
In truth it was a night of few chances in Porto but it was to be Kai Havertz who made the key difference just before break.
Both sides looked bright early on as Raheem Sterling’s effort was snuffed out by Reece James before Timo Werner could only air kick Havertz’s clever pass.
And it was Werner who carried the Chelsea threat from there but the German’s unlucky streak continued as Ederson reacted smartly to keep him out.
But with the game poised to go in goalless at the break, Havertz raced onto Mason Mount’s pass, and he kept it together to steer home the opener.
Guardiola’s task was made even more difficult after the restart, as Kevin De Bruyne was forced off injured, and the Spanish coach struggled to react.
Sergio Aguero was thrown on for a late fairy tale, but it was to be as some fantastic Chelsea defending kept out Phil Foden, before Riyad Mahrez lashed a last gasp effort over the top.
Full Time from the Estadio de Dragao it’s Chelsea 1 Manchester City 0
To hear this story on your smart speaker just say “Open Sport Social and play me the Latest Chelsea News”.