Champions Manchester City fell eight points behind Liverpool in the title race after suffering a shock home defeat against Wolves.
Adama Traore scored twice in the final 10 minutes as Wolves won in the top flight at Manchester City for the first time since 1979.
Traore scored the first 10 minutes from time as the visitors capitalised on a mistake from Joao Cancelo. He added a second on the break deep into injury time.
City have now dropped five points in their opening four home games of the season, having dropped just three in the whole of last season and seven the year before that.
David Silva came closest for the hosts when he hit the bar with a second-half free-kick. Raheem Sterling also had a shot blocked in the scramble that followed.
It was only the second time in 45 league games that City have failed to score. The last time that happened at home in the league was against Huddersfield in May 2018, by which time they had already won their first title of the Guardiola era.
Traore had not scored since September 2018 but the £18m man made no mistake as Wolves twice broke clear of the home defence. Raul Jimenez provided the assist on both occasions.
City defensive errors ruthlessly punished
It is 20 years since Wolves last beat City away from Molineux and 40 since they did so in the top flight. The impact of this victory could have a significant bearing on the title race, so fine are the margins in the battle between the champions and leaders Liverpool.
City and Wolves had both been engaged in European combat this week – and the fact City were at home, rather than travelling 4,000 miles to Turkey and back – and had an additional two days’ rest, should have given them a clear advantage.
That they failed to make the most of it was almost entirely due to their own failings.
Through either misplaced passes by Riyad Mahrez or Nicolas Otamendi, or the latter man needlessly charging out of position, Wolves forwards were allowed to run free three times in the opening half, straight down the middle of the pitch.
Patrick Cutrone screwed one opportunity badly wide and Jimenez appeared to be clipped in the penalty area by Fernandinho, costing him a shooting chance. In between, Fernandinho, currently operating as a makeshift central defender, denied both men with a magnificent double block.
City thought they had survived the worst. But as they pushed for a winner in the final 10 minutes, their mistakes finally cost them.
This time, Cancelo lost possession, allowing Jimenez to race on. As Otamendi slipped, the Mexican rolled the ball to Traore, who finished cleanly.
As City’s desperation increased, Traore’s pace was too much for them. And in the final minute of stoppage time, Jimenez again fed the £18m signing from Middlesbrough, who completed his first double since February 2018, when he was still on Teesside.
Are City’s problems already insurmountable?
This was the day when City’s injury problems finally caught up with them.
It is tempting to dismiss Guardiola’s travails as first-world issues.
After all, City were able to give a full Premier League debut to Cancelo, who cost £60m to sign from Juventus in the summer, and could afford to leave Bernardo Silva and Gabriel Jesus on the bench.
Nevertheless, without Kevin de Bruyne and Leroy Sane, they are being robbed of creativity and the absence of central defenders Aymeric Laporte and John Stones denies them continuity. It already feels as though the problems they face in this title battle are insurmountable.
Cancelo’s selection at left-back meant Guardiola had picked four different players in that single position in the last four games. One of them, Benjamin Mendy, has not started back-to-back Premier League games for 11 months and is facing another spell on the sidelines after suffering a hamstring injury in training.
Cancelo did OK during the opening period. Evidently, that was not good enough for Guardiola, who switched the Italian to right-back at the break – sacrificing Kyle Walker in the process three days after he was left out of the latest England squad – and brought Oleksandr Zinchenko on instead.
There was marginal improvement. But it was limited. And that Cancelo made the mistake that gave Wolves the advantage they were never to lose, just highlighted the consequences of the City weakness that has been exposed.
A week to kickstart Wolves’ faltering season
The victory completed a fantastic week for Wolves.
They started it in the bottom three of the Premier League but a 2-0 win against Watford – their first of the season – lifted them out of the relegation zone.
Then, an injury-time goal by central defender Willy Boly earned them a Europa League victory in Turkey against Besiktas and raised their hopes of reaching the knockout stage.
This win, in their 17th match of a campaign which began on 25 July, leaves them four points off a top-four spot.
In the past 12 months, they have now beaten all of the ‘big six’ in the Premier League apart from Liverpool, who they knocked out of last season’s FA Cup.
Man of the match – Willy Boly (Wolves)
‘It is a bad day’ – what they said
Manchester City boss Pep Guardiola tells BBC Sport: “We were not at our best. We had chances to score but it was a bad day and we lost the game.
“We did not make good process, we had problems in that sense. We are a team that plays a specific way but it is a bad day, that happens sometimes.
“When you win games, you think about the other one. Now we have the international break, then we can come back and go to the other games.”
Wolves manager Nuno Espirito Santo tells BBC Sport: “We played good, the performance was good but defensively was very good and very organised. The boys worked hard until the end. The fans enjoyed it.
“We had a couple of good chances early on but it is too difficult to play against Manchester City. They play so fast but the chances came eventually. More importantly is how the players did their tasks, very good.
“Adama Traore is improving. He is special because he is very fast, he is unique in that and we searched for a moment of talent.
“It has been a long season already, too many games, but we always compete. I cannot say any game they have not done that. This is the way we want to work, maintain and sustain this.”
Wolves’ landmark win – the best stats
- Wolves have beaten Manchester City away from home in a top-flight match for the first time since December 1979, having drawn once and lost six there since then before today.
- Manchester City have lost at home in the Premier League for just the fourth time in 61 matches under Guardiola.
- Manchester City have lost a Premier League match at Etihad Stadium without scoring for the first since March 2016 against Manchester United (0-1), with Manuel Pellegrini in charge.
- Wolves have beaten the reigning champions of the top flight away from home for the first time since January 1984, when they defeated Liverpool 1-0 at Anfield.
- Guardiola has a 25% win rate in all competitions against Nuno Espirito Santo (1/4) – of managers Guardiola has faced at least three times while in charge of Manchester City, only against Ronald Koeman (0%) and Jurgen Klopp (22%) does he have a worse win rate.
- Traoré had not scored in his past 32 Premier League games before netting twice against City, last scoring against West Ham in September 2018.
Manchester City will look to get their faltering title bid back on track when they travel to Crystal Palace – one of the few teams to beat them last season – on 19 October. Wolves host Southampton on the same day.
- 31EdersonBooked at 62mins
- 2WalkerSubstituted forZinchenkoat 45′minutes
- 25FernandinhoBooked at 76mins
- 27CanceloBooked at 50mins
- 8GündoganBooked at 71mins
- 16RodriBooked at 50mins
- 26MahrezSubstituted forBernardo Silvaat 60′minutes
- 21SilvaSubstituted forGabriel Jesusat 75′minutes
- 9Gabriel Jesus
- 20Bernardo Silva
- 11Rui Patrício
- 27SaïssSubstituted forBennettat 13′minutes
- 8NevesBooked at 84mins
- 28João MoutinhoBooked at 86mins
- 29VinagreSubstituted forCastro Ottoat 74′minutes
- 10CutroneSubstituted forDohertyat 68′minutes
- 19Castro Otto
- Craig Pawson
- Shots on Target
Match ends, Manchester City 0, Wolverhampton Wanderers 2.
Second Half ends, Manchester City 0, Wolverhampton Wanderers 2.
Goal! Manchester City 0, Wolverhampton Wanderers 2. Adama Traoré (Wolverhampton Wanderers) right footed shot from outside the box to the bottom right corner. Assisted by Raúl Jiménez following a fast break.
Attempt missed. Sergio Agüero (Manchester City) left footed shot from the centre of the box is close, but misses to the right. Assisted by Oleksandr Zinchenko with a cross.
Attempt missed. Fernandinho (Manchester City) header from the centre of the box misses to the right. Assisted by Oleksandr Zinchenko with a cross following a corner.
Corner, Manchester City. Conceded by Rúben Neves.
Attempt blocked. Gabriel Jesus (Manchester City) right footed shot from outside the box is blocked.
Gabriel Jesus (Manchester City) wins a free kick on the left wing.
Foul by Ryan Bennett (Wolverhampton Wanderers).
Foul by Nicolás Otamendi (Manchester City).
Conor Coady (Wolverhampton Wanderers) wins a free kick in the defensive half.
Sergio Agüero (Manchester City) wins a free kick in the attacking half.
Foul by Willy Boly (Wolverhampton Wanderers).
Foul by Bernardo Silva (Manchester City).
Jonny (Wolverhampton Wanderers) wins a free kick in the defensive half.
Dangerous play by Gabriel Jesus (Manchester City).
Willy Boly (Wolverhampton Wanderers) wins a free kick in the defensive half.
João Moutinho (Wolverhampton Wanderers) is shown the yellow card.
Bernardo Silva (Manchester City) wins a free kick in the attacking half.
Foul by João Moutinho (Wolverhampton Wanderers).
Rúben Neves (Wolverhampton Wanderers) is shown the yellow card for a bad foul.
Raheem Sterling (Manchester City) wins a free kick in the attacking half.
Foul by Rúben Neves (Wolverhampton Wanderers).
Corner, Manchester City. Conceded by Willy Boly.
Attempt blocked. João Cancelo (Manchester City) right footed shot from outside the box is blocked. Assisted by Ilkay Gündogan.
Corner, Manchester City. Conceded by Rui Patrício.
Goal! Manchester City 0, Wolverhampton Wanderers 1. Adama Traoré (Wolverhampton Wanderers) right footed shot from the centre of the box to the bottom right corner. Assisted by Raúl Jiménez following a fast break.
Fernandinho (Manchester City) wins a free kick in the defensive half.
Foul by Leander Dendoncker (Wolverhampton Wanderers).
Fernandinho (Manchester City) is shown the yellow card for a bad foul.
Offside, Wolverhampton Wanderers. Matt Doherty tries a through ball, but Raúl Jiménez is caught offside.
Attempt blocked. Bernardo Silva (Manchester City) left footed shot from the centre of the box is blocked. Assisted by João Cancelo.
Substitution, Manchester City. Gabriel Jesus replaces David Silva.
Attempt blocked. Oleksandr Zinchenko (Manchester City) left footed shot from outside the box is blocked. Assisted by Rodrigo.
Substitution, Wolverhampton Wanderers. Jonny replaces Rúben Vinagre.
Corner, Manchester City. Conceded by Rúben Neves.
Ilkay Gündogan (Manchester City) is shown the yellow card for a bad foul.
Foul by Ilkay Gündogan (Manchester City).
Adama Traoré (Wolverhampton Wanderers) wins a free kick in the defensive half.
Substitution, Wolverhampton Wanderers. Matt Doherty replaces Patrick Cutrone.