The Blues progressed into this round after securing an impressive 3-0 aggregate win over Atletico Madrid. Porto, meanwhile, knocked out Italian powerhouse Juventus via the away goal rule after the score ended 4-4 over two legs.
In a game where Porto looked the more threatening side, it was Chelsea who went ahead in the 32nd minute. Jorginho sent in a sublime pass to Mason Mount, who brilliantly turned inside the box and drilled in his first Champions League goal.
The second half brought no change to the flow of the game, with Porto controlling proceedings and probing the Chelsea defense. However, Thomas Tuche's men grabbed a vital second as Ben Chilwell pounced on a defensive mistake from Jesus Corona, before rounding up the Porto goalkeeper to also claim his first Champions League goal.
Chelsea now have one foot firmly in the semi-finals and will feel confident with a two-goal lead ahead of the second leg.
Chelsea player ratings
Edouard Mendy: 6/10
A quiet night from the Chelsea shot-stopper as he was largely undisturbed by the Porto attackers. He kept his side in the game by pushing out Pepe's header and had little to do from there on.
Antonio Rudiger: 7/10
A colossal contribution from the German defender. Playing on the left side of Chelsea’s back three, Antonio Rudiger handled the pace and physicality of Marega all game before the Porto striker was subbed off.
Andreas Christensen: 7/10
The Denmark international continued his fine form under Thomas Tuchel with yet another calm and collected contribution at the heart of the defense. He was vital in Chelsea’s build-up play from behind and was on deck to clear out any danger.
Cesar Azpilicueta: 7/10
The Spaniard led by example at the defensive end of the pitch as he did not hesitate to throw his body at any goal-bound shot. He prevented the Porto wingers from fully heating their strides and started the attack occasionally by kicking the ball long for the Chelsea frontmen.
Reece James: 7.5/10
A defensive masterclass from the Chelsea academy graduate. Chelsea's three-man defense meant James moved up to the wing-back role where he performed outstandingly. He won four tackles - the most in the game - alongside six duels and six ball recoveries.
Ben Chilwell: 7/10
The England international put in a decent shift down the left flank for Chelsea. While he might not have been dominating, he did enough to prevent Corona and Zaidu from growing into the game down the Porto right.
He was rewarded for his relentless play in the dying moments of the game, where he pounced on a sloppy play by the Porto defense before rounding the keeper double Chelsea’s lead.
Mateo Kovacic: 7/10
An almost flawless performance from the Chelsea midfielder. Alongside Jorginho, he was sensational at the center of the park with his defensive contributions. He also joined up with the attack as he constantly glided through the Porto players to create something for the frontmen.
He also did well to avoid getting a yellow card, meaning he will be eligible to feature in the second leg for Chelsea.
The midfield general for Chelsea. When on the ball, he dictated the flow and tempo for Chelsea, and he did that perfectly. He created the opening goal after drilling in a precise defense splitting pass to Mason Mount.
Mason Mount: 8/10
Another big performance for Chelsea’s number 19. He continues to prove his worth to both Chelsea fans and football fans worldwide. Mason Mount opened the scoring for Chelsea with a brilliant turn and finish in the 32nd minute. This was his first Champions League goal and certainly isn’t his last.
Kai Havertz: 5.5/10
The German international started brilliantly but gradually fizzled out as the game progressed. He struggled to provide the needed defensive cover in midfield as he often failed to drop deep. He also failed to lay a foothold in the game offensively before summarizing his night with a miss from point-blank range. However, it would have been ruled out for offside.
Timo Werner: 5.5
Timo Werner continues to struggle this season as he was simply off pace with the game once again. He struggled to find pockets of space and impact the game attacking-wise against a very defensive Porto side. He was replaced by Olivier Giroud in the second half.
Player ratings for Chelsea substitutes
Christian Pulisic: 6.5/10
A live wire for Chelsea as he injected pace into their attack. Pulisic rattled the crossbar in the 83rd minute and came close to handing Chelsea a crucial second goal.
Olivier Giroud: 6/10
The Frenchman helped take the pressure off Chelsea as his presence up top prevented the Porto players from building up from behind.
N’Golo Kante: 6/10
The Chelsea man was subbed on to provide defensive cover for the final minutes of the game. He did that perfectly and also made a few darting runs forward to join the attack.
Thiago Silva: 6/10
Replaced Reece James late in the game as Chelsea opted to defend their two-goal lead and protect their clean sheet. He was neat and tidy with his passes, calming the pace of the game and dictating the flow of Chelsea’s play from behind.
Emerson Palmieri: N/A
Came on in the final seconds of the game. He made no telling contribution.