Manchester City moved four points clear at the top of the Premier League by surviving a late scare to beat a Leeds side playing under new manager Sam Allardyce for the first time.
Two fine first-half goals by Ilkay Gundogan had done the damage for City, who appeared utterly dominant as they headed towards their 10th straight league win.
Gundogan’s first neat finish, which came after Riyad Mahrez found him in space on the edge of the area, was into the bottom left-hand corner of Joel Robles’ goal.
His second, again with Mahrez the provider, was identical apart from that he found the opposite corner of the net.
City were in full control but could not find a third goal to finish Leeds off after the break. Even Erling Haaland, for once, failed to score – his best effort came back off the post.
Their best chance to wrap the game up came with six minutes to go, when Pascal Struijk fouled Phil Foden inside the area and referee Andrew Madley pointed to the spot.
Regular penalty-taker Haaland passed up the chance to take it and add to his 51-goal tally for the season, but saw Gundogan miss out on a hat-trick when he sent his effort against the post.
That gave Leeds hope and, only 58 seconds later, they were somehow back in the game. Manuel Akanji failed to deal with a long ball and substitute Rodrigo beat Ederson with a low finish.
Their noisy supporters roared them forward in search of an unlikely equaliser but City were not in the mood to let the three points slip.
Pep Guardiola’s side march on, with the next step in their Treble bid coming against Real Madrid at the Bernabeu on Tuesday, in the first leg of their Champions League semi-final.
They now have four Premier League games left and for the first time this season have a significant lead over second-placed Arsenal, who travel to third-placed Newcastle on Sunday.
Leeds and Allardyce, meanwhile, only have a grim fight against relegation ahead.
With three games left, they remain out of the relegation zone on goal difference – but they will have to show far more attacking intent in the next few weeks if they are to avoid the drop.
Gundogan shows his value to Man City
Gundogan’s contract ends in the summer, and it is games like this that show how foolish it would be for City to allow him to leave after seven years at Etihad Stadium.
The 32-year-old Germany midfielder is far less flamboyant than some of his City team-mates but his knack for finding space or timing his run to make or score a goal remains an important weapon.
He made the difference here, even if he should probably leave the spot-kicks to Haaland in future.
Until the late drama that followed Gundogan’s miss, this was exactly the kind of stroll that City wanted before they face Real in a tie that will define their season.
Guardiola made seven changes from the team that beat West Ham on Wednesday, many of them with Madrid in mind, but there was no sign of any loss of rhythm.
The biggest concern will be an injury to left-back Nathan Ake, who was forced off in the second half and must be a doubt for Tuesday.
Leeds have something to build on
Allardyce’s comments at his unveiling in midweek, when he claimed to be the equal of any manager in the Premier League, succeeded in taking the pressure off his players before kick-off, but he could do little more to help them once the game began.
As anticipated, his plan to stop City involved defending deep and in numbers. Initially it worked, but with Leeds so timid, it seemed only a matter of time before the leaders found a way through, which they duly did.
At 2-0, it felt like damage-limitation was Allardyce’s main goal and, on that front at least, this was mission accomplished – his side did not ship chances or goals in anything like the same numbers as they have in recent weeks.
Their late rally was something of an unexpected and, probably, undeserved bonus. But, far from being battered, as many people expected, this was a performance to build on – starting at home to Newcastle on 13 May.
- 6AkéSubstituted forWalkerat 54′minutes
- 17De Bruyne
- 19ÁlvarezSubstituted forBernardo Silvaat 87′minutes
- 8GündoganSubstituted forRodriat 90+3′minutes
- 3Rúben Dias
- 20Bernardo Silva
- 28McKennieBooked at 90mins
- 8RocaSubstituted forGreenwoodat 59′minutes
- 29GnontoBooked at 45minsSubstituted forRodrigoat 58′minutesBooked at 71mins
- 4ForshawSubstituted forStruijkat 80′minutes
- 11HarrisonSubstituted forSummervilleat 66′minutes
- 9BamfordSubstituted forAaronsonat 80′minutes
- Andy Madley
Match ends, Manchester City 2, Leeds United 1.
Second Half ends, Manchester City 2, Leeds United 1.
Corner, Manchester City. Conceded by Pascal Struijk.
Substitution, Manchester City. Rodri replaces Ilkay Gündogan.
Weston McKennie (Leeds United) is shown the yellow card.
Ilkay Gündogan (Manchester City) wins a free kick in the attacking half.
Foul by Weston McKennie (Leeds United).
Corner, Manchester City. Conceded by Brenden Aaronson.
Corner, Manchester City. Conceded by Brenden Aaronson.
Corner, Manchester City. Conceded by Rasmus Kristensen.
Substitution, Manchester City. Bernardo Silva replaces Julián Álvarez.
Riyad Mahrez (Manchester City) wins a free kick in the defensive half.
Foul by Sam Greenwood (Leeds United).
Goal! Manchester City 2, Leeds United 1. Rodrigo (Leeds United) left footed shot from the centre of the box to the bottom left corner.
Foul by Phil Foden (Manchester City).
Crysencio Summerville (Leeds United) wins a free kick in the defensive half.
Penalty missed! Still Manchester City 2, Leeds United 0. Ilkay Gündogan (Manchester City) hits the right post with a right footed shot.
Penalty Manchester City. Phil Foden draws a foul in the penalty area.
Penalty conceded by Pascal Struijk (Leeds United) after a foul in the penalty area.
Attempt missed. Rico Lewis (Manchester City) right footed shot from outside the box is high and wide to the right. Assisted by Kevin De Bruyne following a corner.
- Our coverage of your Premier League club is bigger and better than ever before – here’s everything you need to know to make sure you never miss a moment