Manchester City kicked off their Champions League title race as Pep Guardiola's men came from behind to beat Porto 3-1 at the Etihad on Wednesday.
Luis Diaz's solo effort punished a sloppy City start for the Portuguese champions, who felt hard done by when Sergio Aguero equalized thanks to a contentious penalty award.
READ ALSO: Sterling's Lone Goal Lifts Man City Past Arsenal At Etihad
However, the Premier League side's quality shone through after halftime when Ilkay Gundogan's free-kick and substitute Ferran Torres' fine finish moved City to the top of Group C.
Guardiola admitted on Tuesday to still feeling guilty over the experimental line-up and formation that led to City's latest Champions League calamity in last season's quarterfinals against Lyon a little over two months ago.
The Catalan is into the final year of his contract at the Etihad and potentially his last chance to land the prize City most desired when they brought him to Manchester five years ago.
However, in the early weeks of the season, City has looked a faded force from the prime of Guardiola's reign in winning back-to-back Premier League titles between 2017 and 2019.
Without the injured Kevin De Bruyne, the English giants were again far from their free-flowing best and Porto took advantage early on.
Former Benfica captain Ruben Dias was at fault for giving the ball away for the opener against his old rivals.
But Diaz still had a huge amount to do as he eased past timid challenges from Rodrigo and Joao Cancelo before unleashing a powerful effort into the far corner.
The visitors' lead only lasted seven minutes and City leveled with a good deal of fortune.
Gundogan inadvertently caught Porto's keeper Agustin Marchesin as he tried to direct the ball goalwards and after the German's shot came off the post, Raheem Sterling was barged over in the box by Pepe.
After a lengthy VAR review, Gundogan's challenge was not deemed a foul to overturn the initial decision to award a penalty and Aguero smashed home his first goal of the season.
Porto still had the better chances to retake the lead before halftime as Matheus Uribe fired over with the goal gaping from a misplaced clearance by Ederson.
Kyle Walker then saved Dias from scoring an own goal as he turned Moussa Marega's cut-back towards his own net.
The Citizens regained control after the break, but it wasn't until a moment of magic from Gundogan 25 minutes from time that they went in front.
The midfielder won a free-kick on the edge of the area and then curled the ball over the wall to the relief of Guardiola on the sidelines.
Gundogan was starting for the first time since testing positive for coronavirus and he was replaced seconds after scoring as Guardiola added a fresh injection of pace in Phil Foden and Torres.
The 20-year-olds combined to seal the points as Foden's pass fed the Spaniard, who skipped inside Pepe before curling high into the far corner.
Marchesin kept the score down late on with great saves from Riyad Mahrez and Rodrigo, while tempers flared between Guardiola and Porto boss Sergio Conceiçao after Pepe and Sterling clashed off the ball.
However, City suffered a late injury blow when captain Fernandinho, who had only been on the field nine minutes, was forced off with what looked like a muscle problem