The hosts looked somewhat nervy in the first half, but improved after the break as an Ilkay Gundogan free-kick and fine Ferran Torres strike followed Sergio Aguero’s early penalty to seal the win for City.
Here are five things we learned from the game:
A dramatic start
Both sides struggled to settle in Manchester, with Luis Diaz running through City to net the opener on 14 minutes, only to see his side give away a penalty through Pepe around five minutes later.
Moments after that, some sloppiness from Ederson in the City goal nearly gifted the visitors a chance to take the lead again.
In general, both teams were struggling to hang onto the ball, and neither really got a foothold in the game until midway through the second half, when City began to look more comfortable following Ilkay Gundogan’s goal.
Referee plays key role
One of the reasons for the nervousness on both sides was due to the refereeing of Andris Treimanis.
The Latvian was pretty quick to administer bookings in the first half, and that had a somewhat understrength City outfit even more on edge than they already were against a motivated Porto.
The difference in refereeing approaches between the Premier League and Champions League has been notable for some time, and – problematically – seems no closer to being resolved.
Worse than that, however, was the inconsistency within the game on Wednesday, with Treimanis failing to treat similar incidents equally throughout the evening.
Walker’s days could be numbered
Kyle Walker has endured a difficult couple of months. Around six weeks ago, the right-back was sent off for England and nearly costed his national team a win against Iceland in the Nations League.
Walker was visibly emotional when discussing the incident after the final whistle, fearing that the needless, reckless challenge that resulted in his red card could have ended his England career. Yet the 30-year-old has either not learned from that experience or he does not possess the capabilities to tidy up his game.
A similarly rash, unnecessary tackle around the half-hour mark on Wednesday night saw Walker go into the book, putting his team right up against it versus a hungry Porto with so much of the game yet to play. Bookings for Bernardo Silva and Joao Cancelo soon followed, but they were more unfortunate – the result of some over-eager refereeing.
Walker went some way to redeeming himself with a sharp goal-line clearance later in the first half, but it still feels like he is too often relying on his pace to bail himself out of unideal situations and convince his coaches to stick with him for a while longer.
Gundogan steps up in De Bruyne’s absence
Kevin De Bruyne, who picked up an injury while on international duty earlier this month, injects an imagination and confidence into City that was noticeably lacking at times on Wednesday.
On many occasions when playing out from the back, the hosts seemed uncertain of how to break down Porto – and almost afraid to try.
Thankfully for Pep Guardiola, Gundogan was able to influence the game more as it progressed, and the Germany international even netted with a lovely free-kick to give City the lead for the first time in the second half.
In De Bruyne’s absence, it was vital that Gundogan stepped up, and – ultimately – he did.
Chelsea fans get Sarr preview
Chelsea signed centre-back Malang Sarr from Nice this summer, only to immediately loan him to Porto for the season.
But the 21-year-old got an early taste of Premier League opposition on Wednesday night as he came up against Guardiola’s side as part of Porto’s back three.
The France Under-21 international was flanked by veteran Pepe and former Newcastle defender Chancel Mbemba, and had an opportunity to prove himself against a potent front three of Aguero, Sterling and Mahrez.
Sarr struggled to particularly impress, but many defenders would in such a situation, and he has a lot of time to develop.