Match ends, Wolverhampton Wanderers 3, Manchester City 2.
Wolves fought back from two goals down to beat 10-man Manchester City in a memorable and controversial Premier League encounter at Molineux.
City looked as though they would make light of the 12th-minute red card shown to goalkeeper Ederson for a foul on Diogo Jota when Raheem Sterling scored twice.
The first came after two dramatic interventions by the video assistant referee, one to award City a penalty, then to rule a retake, both of which Rui Patricio saved before Sterling tapped the rebound from the second kick into an empty net.
But Wolves, roared on by a passionate crowd, levelled through Adama Traore and Raul Jimenez before Matt Doherty won it with a shot from the edge of the area in the final minute.
The result leaves City in third place, 14 points behind Premier League leaders Liverpool, who have a game in hand.
There were jubilant scenes among the home fans at the final whistle - but the match was overshadowed by an incident which saw objects thrown from the stands as City celebrated their opener.
It seems certain that will lead to further action, as a public announcement needed to be made warning supporters that charges would be brought against anyone caught on CCTV committing an offence.
- Title race is over, says Guardiola
- Fans warned after object thrown during match
- Analysis and reaction from Wolves v Manchester City
A famous Wolves comeback
When Sterling scored the opener, Manchester City manager Guardiola did not look entirely satisfied that the winger had taken both spot-kicks.
There was no complaint about the England international's second goal of the night, though, as he raced on to Kevin de Bruyne's superb through ball and chipped brilliantly past an advancing Rui Patricio.
It was the first time Sterling had scored two in a league game since the opening day of the season - and City seemed certain to become only the sixth team in Premier League history to win after having a man sent off in the opening 12 minutes.
Instead, it provided the backdrop to a Wolves comeback that will live long in the memory.
Guardiola had brought on Eric Garcia and changed to a three-man defence at the break. It was supposed to repel the twin threat posed by Jimenez's power and Traore's pace. But that defence was breached five minutes after Sterling's second when Traore drove a shot into the bottom corner from the edge of the area.
It was the Spaniard's third goal of the season against City - only Eden Hazard and Jamie Vardy had previously scored that many against a Guardiola team in a Premier League season.
More was to come. A dreadful loss of possession inside his own area by Benjamin Mendy allowed Traore to cross low for Jimenez, who converted from close range.
Roared on by a partisan crowd and with tensions on the touchline heightening, Wolves won it - with Doherty providing the climax by drilling home from the edge of the area. He raced away to be greeted by ecstatic team-mates as Nuno Espirito Santo and his coaching staff leapt for joy on the touchline.
Both sides must play again within 48 hours of the final whistle at Molineux - a result of the congested festive fixture programme that has brought complaints from both Nuno and Guardiola.
An early night for Ederson and Aguero
In his pre-match media conference, Guardiola said replacing Sergio Aguero would be one of his hardest tasks as manager.
The City boss was referring to the possibility of the striker's exit at the end of his contract in 2021. Little did he know then that he would be replacing Aguero against Wolves after just 12 minutes.
Just back from a thigh injury, the Argentine was only playing at Molineux because Gabriel Jesus had been ruled out through illness.
But when Ederson raced out of his penalty area and clumsily brought Jota down, Aguero was the man substituted to allow second-choice keeper Claudio Bravo to come on.
Aguero looked less than impressed, although he got himself off the pitch far quicker than Ederson.
The Brazilian keeper pleaded his case to referee Martin Atkinson, waited for VAR confirmation that the decision was correct, and then hung around some more before eventually heading down the tunnel.
VAR in the middle of more drama
If the VAR intervention for Ederson's dismissal was fairly straightforward, what happened around City's opening goal lit the fuse for furious reactions on the pitch and disgraceful scenes off it that led to the public address announcement warning supporters about their behaviour.
The trigger was a tackle on City winger Riyad Mahrez by Wolves defender Leander Dendoncker, which Atkinson ignored as he awarded a goal-kick. VAR had other ideas and decided contact between the pair merited a City penalty.
Sterling took it, Rui Patricio saved to his right and the ball was cleared behind for a corner.
But VAR wasn't done. Replays showed Wolves skipper Conor Coady had encroached into the penalty area before making the clearance, so a retake was awarded.
On the touchline, Guardiola appeared to be screaming for someone else to take it. The message did not get through. Again Sterling went to Patricio's right. Again the Wolves keeper saved. But this time the rebound rolled straight back to the City man, who tapped home.
In front of the home dug-out, Wolves assistant boss Rui Silva was furious, ripping off his gloves in a rage before shouting at fourth official Andre Marriner.
The City players celebrated in front of the Jack Hayward Stand. As they did so, missiles were thrown at them, one of which was handed to Atkinson, who in turn, brought it to the touchline for Marriner to pass to Wolves security staff.
It was after that the public announcement came, although this just fuelled anti-VAR sentiment among the Wolves fans, who made their feelings clear by chanting "it's not football any more".
Man of the match - Matt Doherty (Wolves)
Why Wolves can never be written off - the key stats
- Wolves have won more points from losing positions than any other side in the Premier League this season (14).
- Manchester City had just 37.8% possession versus Wolves - the lowest figure recorded by a side managed by Pep Guardiola in top-flight history.
- City lost a Premier League game having led by two or more goals for the first time since April 2018, when they were beaten 3-2 at home by Manchester United. Only Tottenham (eight) and West Ham (six) have lost more games in Premier League history having led by two or more goals than Manchester City (five), with two of those defeats coming under Pep Guardiola.
- Wolves have completed their first league double over Manchester City for the first time since 1999-2000 in the second tier, and for the first time in the top-flight since 1960-61.
- Adama Traore is only the third player to score three goals in a single Premier League season against Guardiola's Manchester City, following Eden Hazard and Jamie Vardy (both in 2016-17).
- Of all the players with more than one top-flight goal to their name, Traore is the only man ever to have scored more than half of his Premier League goals against the reigning champions. Three of his five top-flight strikes have come against the champions, a ratio of 60%.
- Manchester City's Raheem Sterling has scored more goals in all competitions this season than any other Premier League player (20).
- Wolves' Raul Jimenez has been directly involved in 26 goals in all competitions this season (17 goals, nine assists) - more than any other Premier League player.
- Ederson became just the second Manchester City goalkeeper to be sent off in the Premier League, after Andy Dibble against QPR in October 1994.
- No player has provided more assists in Europe's big five leagues this season than Manchester City's Kevin de Bruyne (11).
Both sides have less than 48 hours to prepare for their next Premier League fixture in the busy Christmas period.
Wolves go to Premier League leaders Liverpool on Sunday (16:30 GMT), with Manchester City hosting Sheffield United on the same day (18:00 GMT).
- 11Rui Patrício
- 28João Moutinho
- 19Castro OttoSubstituted forVinagreat 73'minutes
- 9JiménezSubstituted forBennettat 90+4'minutes
- 18JotaSubstituted forNetoat 79'minutes
- 31EdersonBooked at 12mins
- 30OtamendiBooked at 60mins
- 20Bernardo Silva
- 26MahrezSubstituted forGarcíaat 45'minutes
- 17De BruyneSubstituted forGündoganat 67'minutes
- 10AgüeroSubstituted forBravoat 14'minutes
- Martin Atkinson
- Shots on Target
Second Half ends, Wolverhampton Wanderers 3, Manchester City 2.
Substitution, Wolverhampton Wanderers. Ryan Bennett replaces Raúl Jiménez.
Raheem Sterling (Manchester City) hits the bar with a right footed shot from outside the box from a direct free kick.
Foul by Adama Traoré (Wolverhampton Wanderers).
Raheem Sterling (Manchester City) wins a free kick in the attacking half.
Corner, Manchester City. Conceded by Leander Dendoncker.
Attempt blocked. Bernardo Silva (Manchester City) right footed shot from outside the box is blocked. Assisted by Kyle Walker with a cross.
Goal! Wolverhampton Wanderers 3, Manchester City 2. Matt Doherty (Wolverhampton Wanderers) left footed shot from the centre of the box to the bottom left corner. Assisted by Raúl Jiménez.
Attempt blocked. Rúben Neves (Wolverhampton Wanderers) right footed shot from outside the box is blocked. Assisted by João Moutinho.
Matt Doherty (Wolverhampton Wanderers) wins a free kick in the defensive half.
Foul by Bernardo Silva (Manchester City).
Romain Saïss (Wolverhampton Wanderers) wins a free kick in the defensive half.
Foul by Kyle Walker (Manchester City).
Foul by Adama Traoré (Wolverhampton Wanderers).
Fernandinho (Manchester City) wins a free kick in the defensive half.
Goal! Wolverhampton Wanderers 2, Manchester City 2. Raúl Jiménez (Wolverhampton Wanderers) left footed shot from very close range to the centre of the goal. Assisted by Adama Traoré.
Foul by Rúben Vinagre (Wolverhampton Wanderers).
Bernardo Silva (Manchester City) wins a free kick in the defensive half.
Corner, Wolverhampton Wanderers. Conceded by Nicolás Otamendi.