Manchester City's march to the Premier League title stalled on Saturday as 10-man Leeds beat the runaway leaders 2-1, while Liverpool ended a six-game losing streak at Anfield when Trent Alexander-Arnold's late strike sealed a 2-1 win over Aston Villa.
Chelsea moved back ahead of Liverpool in the battle for a place in next season's Champions League, though, as the Blues thrashed Crystal Palace 4-1 at Selhurst Park.
City are counting down to their third title in four seasons, but Stuart Dallas's stoppage-time strike leaves them still needing 11 points from their last six games to clinch the crown.
Just a fourth league defeat of the season for the leaders came after Pep Guardiola made seven changes following their midweek Champions League quarter-final first-leg win over Borussia Dortmund.
With Kevin De Bruyne on the bench at the Etihad, City were below their best and made to pay by a lively Leeds side that move up to ninth in their first season back in the top flight after a 16-year absence.
"We did not create enough for the forwards. It is part of the game," Guardiola said.
"When they defend in the way they were you have to stop them running and we did not do that."
Leeds took the lead three minutes before half-time when Dallas took Patrick Bamford's lay-off on the edge of the area and hit a firm low shot that left Ederson rooted to the spot as it rebounded in off the post.
Moments later, Leeds defender Liam Cooper was dismissed for a foul on Gabriel Jesus.
Referee Andre Marriner initially booked Cooper after he caught the Brazilian on the knee, but changed his decision to a red card after reviewing the incident on the pitchside monitor.
City equalised in the 76th minute when Bernardo Silva flicked the ball into the path of Ferran Torres and the Spaniard clipped his shot past Illan Meslier.
But in the first minute of stoppage time, City were caught by brilliant Leeds counter.
Dallas raced onto a fine through ball from Ezgjan Alioski and guided a cool finish past Ederson.
- Liverpool late show -
Liverpool are desperately trying to salvage their troubled campaign by qualifying for next season's Champions League via a top-four finish.
Jurgen Klopp's men had not won at home since December, but the Reds avenged their humiliating 7-2 defeat at Villa in October when Alexander-Arnold curled home in stoppage time.
"I can't remember the last time we did it easy but it's fine in our situation after losing six home games," said a relieved Klopp.
Villa striker Ollie Watkins scored a hat-trick in the October rout and he was back on the scoresheet after 43 minutes with a low shot that squirmed under Alisson Becker's weak attempted save.
Liverpool were denied an equaliser moments later when Roberto Firmino's close-range finish was chalked off by VAR for an extremely tight offside call against Diogo Jota in the build-up.
But Mohamed Salah levelled in the 57th minute with a close-range header after Andrew Robertson's shot was parried into his path by Emiliano Martinez.
Villa winger Trezeguet hit the post in the second half, but Alexander-Arnold won it in added time when the right-back blasted home from the edge of the area.
Chelsea ensured Liverpool's move into the top four was a brief one as they surged into a 3-0 lead inside half an hour against Palace.
Kai Havertz netted just his second Premier League goal before Christian Pulisic blasted into the roof of the net.
Kurt Zouma's header from Mason Mount's free-kick rounded off a dominant first-half as Thomas Tuchel's men made it 12 wins in 16 games since the German took charge in January.
"The first half an hour we were excellent; very hungry, very aggressive," said Tuchel.
"I came to England for the target to finish in the top four. This was the challenge and the challenge is still there, there is still a long way to go."
Christian Benteke pulled a goal back for Palace after the break, but Pulisic converted Reece James's deflected cross at the back post to round off the scoring with his second.