Ferran Torres scored his third Champions League goal in as many appearances early in the first half to set Manchester City's pace for the rest of the game.
Pep Guardiola's men dominated the first half, but couldn't add to their lead. They were nearly made to pay in the second half as Olympiacos pressed higher and created a couple of chances of their own.
But the Greeks' hopes were dashed as Gabriel Jesus somehow forced the ball into the top corner from an acute angle with 10 minutes to go, and Joao Cancelo made it 3-0 in the dying moments.