Raul Jimenez put the visitors ahead just six minutes in with an accomplished finish from just inside the area, before Leander Dendoncker doubled their advantage inside 20 minutes from close range as poor defending put Tottenham on the back foot early on.
Spurs huffed and puffed to get back into the contest and it certainly wasn't a quiet afternoon's work for Jose Sa in the visiting goal, however they failed to put their opportunities to bed and floundered to a second home defeat in a row.
The result sees Wolves leapfrog Tottenham into 7th in the Premier League table, though the latter do have a game in hand.
Story of the game
Coming into the match, Spurs head coach Antonio Conte made three changes to the side which collapsed to a 3-2 defeat against Southampton in midweek, with Matt Doherty and Ryan Sessegnon replacing Emerson Royal and Sergio Reguilon in the wing-back roles while Rodrigo Bentancur made his first league start for the club in favour of Pierre-Emile Hojbjerg.
There were two adjustments to Bruno Lage's Wolves team, with teenager Luke Cundle making his full league debut in midfield and Rayan Ait-Nouri earning a start as Marcal and Francisco Trincao dropped to the bench.
Losing on Wednesday, another defeat today wasn't an option for Spurs — but the match nonetheless got off to the worst possible start for the hosts with Wolves taking the lead just six minutes in.
It was awful defending from Conte's side after Hugo Lloris had done well to save a Ruben Neves effort from just outside the box. First, Dendoncker's header from an awkward height drew the goalkeeper into another accomplished stop, before Jimenez was afford the third and decisive bite at the cherry, controlling with his chest and finishing with aplomb from about 15 yards out.
Spurs fashioned a superb chance to equalise with 15 minutes on the clock when a superb pass from Bentancur combined with a similarly impressive run from Heung-min Son to set the latter through on goal, but the forward got the ball caught under his feet and thus allowed Romain Saiss to catch up with him, the opening petering away.
Oh, how Tottenham would come to regret not making the most of that opportunity — they found themselves two down just moments later.
Lloris had been let down by his defence for the first goal but the second was partially on him. A poor pass towards Ben Davies put the defender in all sorts of trouble as Wolves swarmed around him and eventually won the ball. Nelson Semedo darted into the box and put it back across; Daniel Podence hit the bar but Dendoncker reacted quickest to turn in the rebound and send the travelling support into delirium.
Harry Kane summed up the frustration brewing around the Tottenham Hotspur Stadium when he marched through the centre before, without any viable passing options, striking a hopeful effort at goal from 30 yards. It was clearly a great deal closer than Sa thought as the visiting keeper nonchalantly watched it whistle just high and wide of the top corner.
It wasn't ticking for Spurs and Conte knew as much. With less than half an hour played, the head coach shuffled his pack as Dejan Kulusevski replaced Sessegnon in an apparent shift to a four-at-the-back formation. But, against the second best defence in the league, Tottenham now had a mountain to climb.
Wolves remained on top for now, and nearly went three ahead when Semedo laid the ball off for Podence on the edge of the area — it took an expert low save from Lloris to keep it out.
Tottenham's defence was struggling, but the attack wasn't fairing any better. Even the talismanic Son was having a hard time impacting this match, with a couple of efforts from the left side of the box failing to cause Sa any real discomfort.
Not long before the break, Spurs won the ball high up the pitch and fed Kane in acres of space in the box, but the forward was again a little too slow getting his shot away, as Saiss bore down on him and hoofed the ball off the striker and out of play for a goal-kick.
Their last opportunity of the first half fell when Lucas delivered an inch-perfect cross into the area and right onto the head of Kane, but the striker saw his headed effort fall right down the throat of Sa.
Prior to today, Spurs had never won from two goals down at half-time in a home Premier League match, and it would take a mammoth effort for them to buck the trend here.
There wasn't too much of an improvement from Tottenham after the break. In fact, another instance of sloppiness in possession let Wolves in for a golden chance to extend their lead as Podence played Jimenez through on goal, but the striker took too long to get his shot away and Lloris narrowed the angle well before saving.
The one positive for Spurs was that Kulusevski had been a breath of fresh air since his introduction; his neat pass into the box for Son so nearly resulted in a goal but for heavy pressure from the Wolves defence and quick reactions from Sa.
Son then thread Kane through on goal just moments later but the goalkeeper was equal to the effort again, saving well down low.
They'd had — and would have — opportunities today, but Tottenham's glaring issue, on top of their at times lacklustre defending, was their inability to make those chances show for anything.
With 65 minutes gone, times were getting desperate for the hosts. Kulusevski picked up a loose ball following a free-kick and set it nicely for Winks from 20 yards; the midfielder's driven effort deflected off Max Kilman and clattered the wrong side of the post to go behind.
Spurs were huffing and puffing but it just wasn't coming off against their resilient visitors. They came close with just under 15 minutes remaining when Kulusevski took aim on the half-volley after a knock-down from Davies; it was agonisingly close to creeping in with Sa stranded.
Tottenham's final couple of chances came just before stoppage time as Kane's diving header from an Emerson cross was blocked crucially by Kilman, before Cristian Romero forced Sa into a fine save from the resultant corner.
But Spurs couldn't find a way through, and suffered their second consecutive home defeat with a whimper.
Takeaways from the match
Defensive woes, attacking profligacy: Spurs not at the races once again
Tottenham will have been hoping to put the demons of Wednesday night to bed here, but it all went wrong from the very start in what was a poor performance from Conte's side.
The tone was set defensively when Wolves were afforded three bites at the cherry for the opening goal, and the back line did nothing to cover themselves in glory for the second either, standing like statues as Dendoncker nipped in to extend his side's advantage.
Despite not conceding from then on, they didn't really shore up and Wolves could, on another day, have scored more. It must be said, though, that the defence was given an awful lot to do with the attack stifled to an alarming degree and the midfield struggling to keep hold of the ball in key areas.
That said, they did have the chances to get back into the match, but the likes of Son and Kane — so clinical on their day — could not provide the finishing touches here as Tottenham suffered their second home defeat in a row.
A complete performance from Lage's Wolves
By contrast, today's visitors in north London were at the very top of their game, as they so often are under the tutelage of Lage.
The two early goals helped settle them down, of course, and they might not have been afforded such openings against a more accomplished defence, but Wolves could only beat what was in front of therm and deservedly did so today.
Jimenez and Podence led the line brilliantly even as Lage shifted from three forwards to two for today's match. The wing-backs, Semedo and Ait-Nouri, won their individual battles, while the midfield was dominant with Cundle registering a particularly impressive display on his full league debut.
Lage places so much emphasis on the defensive side of the game and won't have been pleased to see Tottenham afforded a handful off opportunities to hoist themselves back into the encounter but, nonetheless, these are not three points to be sneered at as Wolves continue their quest for European football.
Tottenham Hotspur: Lloris; Sanchez, Romero, Davies; Doherty (Emerson 82'), Bentancur, Winks, Sessegnon (Kulusevski 28'); Lucas (Bergwijn 71'), Kane, Son.
Unused subs: Gollini, Rodon, Reguilon, Hojbjerg, White, Scarlett.
Wolverhampton Wanderers: Sa; Kilman, Coady, Saiss; Semedo, Dendoncker, Neves, Cundle (Trincao 84'), Ait-Nouri; Podence (Hwang 81'), Jimenez (Silva 86').
Unused subs: Ruddy, Hoever, Toti, Marcal, Jonny, Chiquinho.
Referee: Kevin Friend
Following defeat here, Tottenham travel to the home of league-leaders Manchester City next Saturday.
Wolves, meanwhile, return to Molineux for the visit of Leicester City a day later.