Adama Traore struck twice in the closing minutes as Wolves claimed a shock 2-0 win over champions Manchester City at the Etihad Stadium.
The Spaniard finished off a quick counter-attack 10 minutes from time and then broke away for another in stoppage time to leave Pep Guardiola's side eight points behind Premier League leaders Liverpool.
City were below par but had been piling on the pressure in search of a breakthrough and hit the bar through David Silva in the second half.
But Wolves were resolute and, after piercing City's unsteady defence and spurning a number of gilt-edged chances in the first half, they finally made them pay late on.
The hosts paid for their indecisiveness as, despite having plenty of possession, they were unusually sluggish, particularly in the first half when their defence seemed at sixes and sevens. Were it not for some wasteful finishing by the Wolves forwards, they could easily have been trailing at the break.
Guardiola was again forced to play midfielder Fernandinho as a makeshift centre-back alongside Nicolas Otamendi, although there were times when it seemed as if the Brazilian was the specialist.
Otamendi made a number of errors while bringing in Joao Cancelo as City's fourth starting left-back in four games in all competitions - with Benjamin Mendy ruled out injured - added further unfamiliarity to the back line.
City were caught napping after five minutes as Joao Moutinho played Patrick Cutrone through on goal. It was a glorious chance but the Italian attempted to curl beyond the advancing Ederson and sliced wide.
Wolves were presented with further chances as Riyad Mahrez gave the ball away but Fernandinho did brilliantly to block from Raul Jimenez and the follow-up effort from Cutrone.
Jimenez raced through again after Otamendi gave the ball away but Ederson came out to deny him, although the Wolves forward claimed he had been clipped by Fernandinho in the area.
Almost half an hour had gone before City had a first serious attempt on goal as Ilkay Gundogan shot wide from a free-kick.
Rui Patricio then produced a fine save to keep out a Raheem Sterling shot from the edge of the box and Cancelo blasted over.
Guardiola tried to tighten up at the back at half-time as he sent on Oleksandr Zinchenko for Kyle Walker and switched Cancelo to right-back. That solved one problem but Wolves remained firm at the other end and Guardiola introduced Bernardo Silva on the hour in the hope of finding a breakthrough.
City's frustration became apparent as they protested vociferously after Wolves won a free-kick deep in their own half. Ederson joined in the complaints as play switched to the other end and was booked.
Guardiola's side almost found a way through after 67 minutes when David Silva clipped the bar from a free-kick and the ensuring scramble saw Sergio Aguero, Sterling and Silva, again, all threaten but Wolves survived.
City cranked up the pressure and carved out another chance after a move down the right involving their third substitute, Gabriel Jesus, but Bernardo Silva's close-range effort was blocked.
At times City were encamped in the Wolves half but that was to cost them as a quick break break by the visitors caught them completely off-guard 10 minutes from time.
Jimenez led the charge and skipped through an attempted challenge from Otamendi to square invitingly for the advancing Traore, who calmly slid the ball past Ederson.
City tried to respond but they could not find a way through and Traore finished things off with another breakaway goal in the dying seconds.