Manchester United produced an incredible second-half comeback to beat rivals Manchester City 3-2 and leave them waiting for confirmation of the Premier League title after a thrilling game at the Etihad Stadium.
Pep Guardiola's side seemed to be cruising to the crown as they went in at the break with a 2-0 lead, but United conjured an extraordinary response led by two-goal Paul Pogba before Chris Smalling hit the winner.
City produced the first threat with five minutes gone when Leroy Sane found David Silva, whose low cross seemed to hit the grounded Ashley Young on the hand only for penalty appeals to be waved away.
The home side were controlling the opening stages but United offered some threat when Pogba was fouled on the left only for Alexis Sanchez to waste the free kick.
Back came City and, after 21 minutes, David Silva got onto the end of a loose ball after good work from Raheem Sterling but sent his effort high and wide.
That was a warning for an increasingly stretched United, whose keeper David De Gea soon had to make a good save to thwart Bernardo Silva.
But after 25 minutes City took what seemed to be their first step towards confirming the title when captain Vincent Kompany rose unmarked to thump home a header from Sane's corner.
Five minutes later, it appeared all but in the bag as Pep Guardiola's men struck again in style, Sterling finding Ilkay Gundogan, who turned away from Ander Herera and finished low into the corner.
Sterling twice fired over from good positions as City looked to put the outcome beyond doubt before half-time, Herrara going into the referee's book as United looked increasingly ragged.
Sane crossed low as Jose Mourinho's side again struggled to cope with City's passing, only for Sterling to scuff his shot into the hands of De Gea, while Gundogan headed at the keeper before the visitors' Romelu Lukaku was booked for a foul.
Lukaku made a strong run into the City area in the opening moments of the second half but his attempted cross was cut out, the corner coming off Kompany and running across the area with nobody able to get a touch.
United were on the front foot as they tried to find a way back and Pogba tried his luck from just outside the box but Ederson saved.
Back came City and Sterling engineered a shooting chance for Gundogan, who lifted his effort over.
But after 53 minutes United were back in it with a high-quality goal, Sanchez picking out Herrera, who chested the ball down for Pogba to clip home -- and within two minutes they had made it 2-2.
Again the goal was excellent and again Sanchez was involved, flighting in a perfect cross for Pogba to head past Ederson.
City had a chance to re-establish the lead when Fernandinho flighted a pass to David Silva inside the area but, after bringing the ball down, he was unable to steer it home.
Jesse Lingard fired wide as City's composure deserted them, but Gundogan soon sent a 65th-minute free kick over the top after David Silva had been fouled.
Astonishingly, after 69 minutes United were in front, Sanchez again the provider as his deep free kick from the left was met by Smalling, who escaped his markers to thump past Ederson.
Guardiola reacted by ringing the changes, bringing on Kevin De Bruyne for David Silva and Gabriel Jesus for Bernardo Silva in what was suddenly a stunned atmosphere at the Etihad Stadium.
A third change soon followed as Sergio Aguero entered the fray, coming on for Gundogan as the game entered its final 15 minutes.
City were adamant that they should have had a penalty when Young clattered Aguero inside the area but referee Martin Atkinson waved away the appeals, Aguero booked for his reaction, before Fernandinho received a yellow card for a foul on Lingard.
The game was beginning to come to the boil, Pogba joining those booked, before Mourinho made a change as he replaced Sanchez with Marcus Rashford.
With five minutes of normal time remaining, Scott McTominay came on for Lingard as the United boss looked to see the game out.
Young made a crucial interception when Sterling looked to have got away down the right with time running out, and then De Gea made a confident claim as Fabian Delph swung in a cross from the left.
And with 89 minutes gone, the United keeper made a superb, crucial stop to tip an Aguero header over the bar when the City substitute seemed all but certain to make it 3-3.
Sterling's deflection of a header into the area came back off the post and was scrambled away as City came even closer to an equaliser -- but, with Danilo and Gabriel Jesus booked in added time -- they were unable to find one.