Ferran Torres put City ahead in the first half before Gabriel Jesus and Joao Cancelo each came off the bench to score and snuff out a lively second-half performance from the Greek champions. Victory extended City's unbeaten run in the group stages to 14 games, and they will have the chance to qualify from Group C when they travel for the return game with Olympiakos on Nov. 25.
Torres, still only 20, is looking like a steal at a little more than £20 million. His goal made him the third-youngest player to score in four consecutive Champions League appearances behind Kylian Mbappe and Erling Haaland. It is not bad company to keep. He hasn't had too many opportunities out wide since arriving from Valencia in the summer, but asked to fill in up front in the absence of Jesus and Sergio Aguero, he has done a fine job. His finishing ability for a player still so young has been particularly impressive.
Pep Guardiola said after the 1-0 win over Sheffield United on Saturday that his team were not being clinical enough, and it was the same here. City dominated the first half but had only one goal to show for it. A better team than Olympiakos might have cashed in on a second 45 minutes that Guardiola's side allowed to drift, and it wasn't until Jesus' goal nine minutes from time that the game was made safe.
Manager rating out of 10
The City manager said he would not look ahead to Liverpool before picking his team to face Olympiakos, but it will not hurt that his first-choice spine of Aymeric Laporte, Ruben Dias and Rodri got the night off. The Spaniard won't be thrilled with a sloppy second-half performance, but City still did enough, kept another clean sheet and can now turn their attention to Jurgen Klopp and Liverpool.
Player ratings (1-10; 10 = best. Players introduced after 70 minutes get no rating)
GK Ederson, 7 -- Did well to get his body behind a deflected effort from Youssef El-Arabi in the second half to keep the score at 1-0.
DF Kyle Walker, 7 -- Created the first chance of the night with a sprint to the byline and a drilled cross into Torres.
DF Oleksandr Zinchenko, 6 -- Looked a little rusty but only to be expected in just his second start since returning from injury.
DF Nathan Ake, 6 -- Back in the team after injury. Had very little to do in the first half but El-Arabi caused the defence problems after the break.
DF John Stones, 6 -- Picked from the start for the first time since the first game of the season at Wolverhampton Wanderers. Did his best to organise from the back and will be happy with the clean sheet.
MF Ilkay Gundogan, 6 -- Might have done better with a couple of efforts on goal and will be disappointed to lose control of the midfield during Olympiakos' good spell in the second half.
MF Kevin De Bruyne, 7 -- Made Torres' goal with his 13th assist in the Champions League since the start of the 2017-18 season. Only Mbappe has more over the same period.
FW Raheem Sterling, 6 -- Struggled to create much and didn't get a sight of goal as Olympiakos kept him in check.
FW Ferran Torres, 7 -- Picked again as a makeshift centre-forward in the absence of Aguero and Jesus only fit enough for the bench. Cool finish to make it 1-0.
MF Rodri, 7 -- City looked far more solid after his introduction.
FW Gabriel Jesus, 7 -- A welcome goal on return from injury.
FW Bernardo Silva, N/R -- Took the place of Sterling as part of a double substitution with eight minutes remaining.
DF Joao Cancelo, 7 -- Scored from distance in his eight-minute cameo replacing Walker.
FW Felix Nmecha, N/R -- Came on for De Bruyne in the game's final five minutes.