Manchester City's Premier League title celebrations were put on hold again as Manchester United fought back to win 3-1 at Aston Villa, while West Ham's top four bid suffered a major setback in a 1-0 defeat against Everton on Sunday. Pep Guardiola's side missed a chance to seal the title when they lost 2-1 to Chelsea on Saturday. City could have started the party if second placed United lost at Villa Park, but their arch-rivals kept the leaders' champagne on ice with a second-half escape act.
Trailing to Bertrand Traore's first half rocket, United equalised through Bruno Fernandes' penalty before Mason Greenwood and Edinson Cavani netted to leave City frustrated.
Asked if he was pleased to make City wait, United manager Ole Gunnar Solskjaer said: "That's the best thing. At least we don't drive into a blue army tonight. We'll try to delay it as long as we can."
City, with three matches to play, are now 10 points clear of United, who have four games left.
United host Leicester on Tuesday and Liverpool on Thursday, with a defeat in either of those matches guaranteeing the title for City, who are next in action at Newcastle on Friday.
Treble-chasing City's blistering form has turned the title race into a procession since the new year and it is only a matter of time before their coronation is confirmed.
They will have to wait another 48 hours at least due to the latest display of United's fortitude.
Villa took the lead in the 24th minute through Traore, who turned sharply in the penalty area and shrugged off Victor Lindelof before smashing a superb strike into the top corner from an acute angle.
But Solskjaer's team have been experts at second-half comebacks this season and Paul Pogba won a 52nd minute penalty when Douglas Luiz needlessly bundled over the United midfielder.
City's Sergio Aguero had missed a penalty against Chelsea with a risky 'Panenka' chipped effort, but Fernandes was far more clinical as he sent Villa keeper Emiliano Martinez the wrong way from the spot.
Greenwood put United ahead four minutes later as he swivelled past Tyrone Mings on the edge of the area and drove a low finish past Martinez's weak attempted save.
United suffered a blow when their captain Harry Maguire limped off after colliding with Anwar El Ghazi.
Cavani wrapped up the points with a glancing header from Marcus Rashford's cross in the 87th minute.
Villa striker Ollie Watkins was sent off moments later for a second booking after diving in a failed attempt to win a penalty.
Hammer blow
At the London Stadium, West Ham were rocked by Everton striker Dominic Calvert-Lewin.
Calvert-Lewin latched on to Ben Godfrey's pass and out-paced Craig Dawson before firing home in the 24th minute.
West Ham defender Vladimir Coufal hit the post in the second half, but David Moyes' men now have just three games left to overhaul fourth-placed Leicester.
The Hammers, in fifth, have lost three of their last four games and sit five points behind Leicester, who lost to Newcastle on Friday.
Everton are eighth and remain in the hunt for Europa League qualification.
Brighton blew a chance to secure their survival in a dramatic 2-1 defeat at Wolves.
Brighton took the lead after 13 minutes when Lewis Dunk headed in Pascal Gross' corner.
Graham Potter's side needed a victory to be sure of avoiding relegation.
But Brighton captain Dunk was sent off in the 53rd minute after he pulled back Fabio Silva.
Wolves equalised in the 76th minute through Adama Traore and Morgan Gibbs-White won it in the 90th minute with his first Premier League goal.
Brighton's Neal Maupay was sent off for foul and abusive language after the final whistle.
The Seagulls are 10 points above the relegation zone, with third bottom Fulham, who have four games left, playing Burnley on Monday.
Second bottom West Bromwich Albion, 10 points from safety with four games left, will be relegated if they lose at Arsenal in Sunday's last game.