Ten-man Manchester City blew a 2-0 lead to lose a chaotic game at Wolves and hand Liverpool another huge boost in the title race.
Matt Doherty's 89th-minute strike earned the hosts a stunning 3-2 comeback win after Adama Traore and Raul Jimenez also struck on a rollercoaster night which threatened to boil over.
Raheem Sterling's brace either side of half-time had given the visitors a commanding lead following a crazy first half.
Sterling's first came when he netted the rebound after Rui Patricio had twice saved his penalty, given by VAR.
The spot-kick was retaken after VAR ruled encroachment to add to a thrilling opening after Ederson was sent off for taking down Diogo Jota.
The Football Association will also investigate an incident when a hip flask appeared to be thrown at Sterling from the home fans after his first goal.
But Wolves' second-half fightback left the defending champions third and 14 points adrift of Liverpool, with the Premier League crown surely heading for Merseyside.
Sergio Aguero started for the first time in five weeks for City after a thigh injury, but the striker's return lasted just 13 minutes of a dramatic and breathless first half.
Immediately after an extended break when Benjamin Mendy and Leander Dendoncker clashed heads, City were undone.
Conor Coady launched a long ball over the top and, with Kyle Walker stranded, Jota raced through.
He lifted the ball over the onrushing Ederson, only for the goalkeeper to collide with the forward and be sent off by referee Martin Atkinson.
π² Early drama at Molineux as Ederson is sent off!
β Sporting Life (@SportingLife) December 27, 2019
β Man City down to 10 men!#WOLMCI pic.twitter.com/DaJMLNsXb2
Aguero came off for Claudio Bravo, who claimed Joao Moutinho's free-kick from the restart, but the drama had only just begun.
Just nine minutes later Riyad Mahrez skipped into the area and was clipped by Dendoncker, with his penalty appeals waved away.
But, after a lengthy VAR deliberation, the penalty was awarded, with Dendoncker having trod on Mahrez's foot.
Patricio saved Sterling's initial effort but, following another VAR check, the England man was given a chance to retake after encroachment.
Sterling went low to the keeper's right again and, again, Portugal international Patricio denied him, but only succeeded in pushing the ball back into the forward's path, allowing him to tap in his 23rd of the season for club and country.
π² More drama at Molineux!
β Sporting Life (@SportingLife) December 27, 2019
β½οΈ VAR awards penalty
π‘ Sterling misses
πΊ VAR orders retake
π Sterling scores second time#WOLMCI pic.twitter.com/3FamZVOR92
In the immediate aftermath Atkinson passed a hip flask thrown from the crowd to the fourth official while the PA announcer reminded fans they would be punished if found guilty of throwing objects. The FA told the PA news agency it would be looking into the incident.
An angry Wolves fan also invaded the press box to confront the Manchester City media team before returning to her seat.
Wolves struggled to refocus amid the mayhem and allowed the visitors to dictate.
It was a textbook performance from City after going down to 10 men as they kept possession and managed the tempo.
Wolves were limited to tame efforts from distance and half-time only arrived after seven minutes of injury time.
And just five minutes into the second half City doubled their lead after catching Wolves on the counter-attack.
Kevin De Bruyne brilliantly slipped Sterling through and he raced clear to lift the ball over Patricio.
The game continued at breakneck speed and Traore pulled a goal back five minutes later, firing in off a post from 20 yards after Sterling lost possession.
Wolves had regained their composure and Bravo needed to gather Traore's low drive and Romain Saiss glanced wide with 18 minutes left.
Doherty headed over but the hosts finally got their leveller with eight minutes remaining.
Mendy tried to let the ball run out of play only to be robbed by Traore and his low cross was turned in by Jimenez.
π² Wolves are LEVEL!
β Sporting Life (@SportingLife) December 27, 2019
π What a night we're having at Molineux!#WOLMCI pic.twitter.com/y9uv0watWN
Doherty then sent Molineux wild with the winner in the final minute of normal time when he drilled in from the edge of the box to lift Wolves up to fifth in the table.
Sterling still almost rescued a point in added time when his free-kick hit the bar, but that was as close as City came to a comeback of their own as they remained in third place.
The Football Association will also investigate an incident when a hip flask appeared to be thrown at Sterling from the home fans after his first goal.
But Wolves' second-half fightback left the defending champions third and 14 points adrift of Liverpool, with the Premier League crown surely heading for Merseyside.

