Ilkay Gundogan scored twice but missed a penalty as Manchester City survived a late scare to maintain their title charge with a 2-1 win over relegation-threatened Leeds.

The German midfielder swept home from the edge of the area in the 19th and 27th minutes at the Etihad Stadium to put the champions on course for what seemed a comfortable victory.

City then spurned a host of chances, with Erling Haaland twice hitting the woodwork and Gundogan being denied by goalkeeper Joel Robles, before Rodrigo gave Leeds late hope in Sam Allardyce's first match in charge.

The hosts held on for a victory that lifted them four points clear of Arsenal at the top of the Premier League, reduced to one after the Gunners won 2-0 at Newcastle yesterday, but manager Pep Guardiola will be concerned it was not emphatically closed out.

Such was their dominance, City had all but reduced the game to walking pace before Rodrigo changed the picture in the 85th minute.

Allardyce, who made four changes including bringing in Robles for Illan Meslier, will at least take encouragement from that, although for the majority of the game Leeds were comprehensively outplayed.

City started strongly and there was little surprise when the opener came after 19 minutes, with Guardiola's side having already threatened numerous times.

Kevin De Bruyne had a shot blocked, Julian Alvarez fired over and Haaland was denied by Robles before Gundogan passed into the bottom corner from the edge of the area after Riyad Mahrez cut inside.

Mahrez himself then shot narrowly over before Leeds-born Haaland uncharacteristically blasted wide after Gundogan pinged the ball into the area and De Bruyne teed up the striker with a brilliant lay-off.

With Leeds clearly struggling, a second goal seemed inevitable and it arrived in similar fashion to the first as Mahrez cut inside and found Gundogan 18 yards out once again. This time the German picked the opposite corner as he clipped the ball into the net.

Leeds did have a chance when a Weston McKennie header forced Ederson to save, but the visitors were fortunate not to concede again before the break.

Haaland again spared them when he miskicked in front of goal, Alvarez had an effort cleared off the line and Phil Foden volleyed narrowly over with the final kick of the first half.

Haaland hit the woodwork twice after the break, first heading against the bar following a set-piece and then striking the base of a post on the turn after Rico Lewis threaded him through.

City seemed to be cruising and Gundogan looked likely to wrap up the game by completing his treble when Haaland handed him the ball after Foden was felled by Pascal Struijk.

Yet Robles guessed correctly to save and Rodrigo set alarm bells ringing when he pounced on a Manuel Akanji error to pull one back late on.

City needed to regroup, but avoided any further scares, meaning Leeds remain in deep trouble.

They are currently outside the relegation zone on goal difference, but will drop into it if Nottingham Forest get a point or more at home to Southampton tonight, or if Everton beat Brighton this evening.