Spurs looked to be heading towards the points going into the final 10 minutes as a Jan Bednarek own goal and a Son Heung-min effort either side of Armando Broja’s strike gave them a 2-1 lead.
But headed goals from Mohamed Elyounoussi and Che Adams in quick succession turned the game on its head and handed the win to the visitors, which on the balance of play was thoroughly deserved.
Ralph Hasenhuttl’s men, who felt Son’s goal should have been ruled out for a foul, had Spurs on the rack for the majority of the first half and they deserved the luck they had in seeing Steven Bergwijn’s stoppage-time leveller ruled out for offside.
They handed a first home defeat to Antonio Conte, whose side missed the chance to close the gap on the Champions League places to just a point.
There was a taster for what was to come in just the fourth minute as Adams squandered a great chance as he fired straight at Hugo Lloris from point-blank range as Southampton started brightly.
Spurs came to life and had a goal ruled out for offside as Cristian Romero was flagged following a header from Son’s free-kick before Sergio Reguilon missed a golden opportunity to open the scoring.
Lucas Moura started an electric break, which involved Son and Harry Kane, who teed up Reguilon, but the Spaniard fired straight at Fraser Forster.
But Forster was picking the ball out of his net moments later as another slick move resulted in Spurs taking an 18th-minute lead.
The ball was worked out to Pierre-Emile Hojbjerg on the right and his low cross was turned into his own net by Bednarek with Son ready to pounce.
Southampton’s response was spirited and they almost levelled straight from kick-off as Broja hit the post from an effort on the byline and then Lloris made a smart stop to keep out James Ward-Prowse’s effort from range.
Spurs did not heed their warnings and contributed to their own downfall as Saints hit back in the 23rd minute.
Ben Davies inexplicably missed his kick when trying to clear the ball in the area, it ended up with Romain Perraud, whose centre was fired home by Broja.
How Southampton did not have the game wrapped up by half-time is a mystery as they had Spurs on the back foot and had an abundance of gilt-edged chances.
Stuart Armstrong’s header was kept out by Lloris before Broja wastefully missed the target after bearing down on goal.
The assault kept coming as Perraud thundered an effort from distance against the crossbar, with Southampton ending the first half with 15 shots on goal.
It was impossible for Spurs to be any worse after the restart and they began to take control of the game.
Kane somehow missed a chance at the far post as he headed Reguilon’s cross too far into the ground and it bounced over the crossbar.
Spurs’ pressure eventually told and they regained the lead in the 70th minute, but Southampton were furious.
They felt Broja was fouled by Emerson Royal, but referee David Coote waved play on, Moura broke down the right and centred for Son to slide in from eight yards.
There were some heated arguments on the touchline while Broja received lengthy treatment, with Conte having to be held back by his staff.
Again Southampton responded well and were level 10 minutes later as Ward-Prowse sent in a pinpoint cross which Elyounoussi headed into the corner.
It was a carbon copy in the 82nd minute as this time Adams was on the end of Ward-Prowse’s excellent delivery.
Spurs thought they had levelled at the death but Bergwijn was marginally offside when he turned home Romero’s header.