The Eagles were dependent on counter-attacks as their opponents dominated possession throughout the match. Michael Olise and Conor Gallagher looked sharp on the break but Vicente Guaita was by far the busier goalkeeper in the first-half.
The Spaniard spilled a speculative Kevin De Bruyne drive after 20 minutes, which Bernardo Silva decided to try and take around the keeper, only to dribble into touch with the goal gaping.
De Bruyne forced a smart reflex save after wonderfully diverting a lob over his shoulder on target, while Guaita had no answer to a Joao Cancelo drive from range that hit the post – and the lightning-bolt rebound was sent over by Aymeric Laporte.
The second period saw more of the same as City’s pressure intensified, De Bruyne hitting the post after more inch-perfect build-up play. Guaita was then alive to Riyad Mahrez’s stinging reply.
Silva fluffed his lines from an even better position on 70 minutes, after Jack Grealish broke in down the right channel and put the ball on the plate for his teammate, who failed to make a telling connection from two yards out.
The final big chance fell to Laporte, as a free-kick from the superb De Bruyne picked out the defender on the brink of stoppage-time, but he too produced a weak effort which was easy for Guaita to grab.