Pedro Neto scored an added-time winner as Wolves came from behind to earn a dramatic victory and stop Chelsea going top of the Premier League.
Daniel Podence had levelled in the second half after Olivier Giroud put the Blues ahead.
The Portugal forward tiptoed through the Chelsea defence before wrong-footing goalkeeper Edouard Mendy with a shot that deflected in off Reece James.
It came after a fierce Giroud volley from Ben Chilwell’s cross crept through Rui Patricio’s gloves to open the scoring for the visitors.
Neto was denied a late penalty for the hosts after referee Stuart Attwell reviewed his original decision on the pitch-side monitor and judged the Wolves forward was not fouled by Reece James.
But the 20-year-old broke away in the 95th minute and fired a low strike into the far corner beyond Mendy to earn Wolves only their second win in six games.
It is a second successive defeat for Chelsea after they were beaten at Everton on Saturday, with Frank Lampard’s side again missing an opportunity to go top of the table.
Blues’ title charge stuttering?
Lampard said his side did not “have enough answers” in that 1-0 defeat against the Toffees, with Tottenham also frustrating his side in a goalless draw at Stamford Bridge last month.
It was a similar story at Molineux as the Blues failed to have a shot on target in the opening 45 minutes, Kurt Zouma hitting the crossbar and Giroud heading over from a corner.
The visitors made amends immediately after the break as Giroud beat Willy Boly to Chilwell’s low ball to fizz a left-footed volley underneath Patricio.
It was the in-form Frenchman’s seventh goal in as many games in all competitions, but it was not enough to stop the Blues losing consecutive top-flight matches for the first time since December last year.
Lampard may have had reason to feel aggrieved at Wolves’ leveller, which followed a corner awarded to the hosts despite the ball having appeared to go out off Boly.
But Chelsea failed to create any serious chances after Giroud’s goal and were picked off on the break by the hosts’ pace and trickery in attack.
With Tottenham visiting Liverpool on Wednesday, this was a chance for Chelsea to move briefly into top spot and apply pressure.
Instead, the Blues remain fifth and could lose ground on the top four with all the teams in the Champions League places still to play this week.
Wolves find goalscoring solution
Wolves had failed to score in their previous two games after losing talismanic striker Raul Jimenez, who suffered a fractured skull against Arsenal.
The Mexican played in every Premier League match for Nuno Espirito Santo’s side last season, scoring 17 goals.
Against Chelsea the manager turned to 18-year-old club-record signing Fabio Silva in his search for goals.
Silva, who joined for £35m from Porto, did have the ball in the net but only after straying offside and generally found it a tough evening up against an experienced defender twice his age in Chelsea’s Thiago Silva.
Portuguese duo Podence and Neto produced the main goal threat for the hosts, who also sold Diogo Jota to Liverpool in the summer, and looked capable of shouldering the attacking burden in Jimenez’s absence.
Wolves also looked solid at the back, with Nuno reverting to three central defenders after playing with a back four in their past four games.
The results lifts his side to 10th in the table.
‘The boys believed the game was there’
Wolves boss Nuno Espirito Santo to Amazon: “We were always in the game. We were well organised. In the second half we played really good football.
“In the first half the game was tight, Chelsea had the ball. Second half, the boys believed the game was there to be competitive.
“We were disappointed three days ago [at losing late on to Aston Villa]. Football is until the last minute. It can happen to any team.
“It’s a strange season. We miss our fans today. There are too many voices around the referee and technical staff. Too bad the fans are not here to celebrate with us.”
Chelsea boss Frank Lampard to Amazon: “Very [disappointed]. We should see the game out at 1-0. If you’re not playing well, don’t allow counter-attacks and we did.
“Performance is what gives you results. We we were playing very well and maybe the lads think ‘we’re playing well’. When you think you’re playing well, things like this happen.
“This is the Premier League. If you don’t perform you lose games.”