Harry Kane's first-half goal looked likely to give the visitors all three points, as Mauricio Pochettino, serving a two-game touchline ban for confronting referee Mike Dean after losing to Burnley two weeks ago, watched from the stands.
But Yan Valery, who scored his first senior goal against Manchester United last week, scrambled home an equaliser with 14 minutes of normal time left before James Ward-Prowse's stunning free-kick snatched the win.
Some wayward shooting from Kane underlined a scrappy opening 20 minutes, before Maya Yoshida fortunately saw the ball strike the Southampton post when he cut out the England striker's cross.
200 - Harry Kane has now scored 200 career goals for club and country combined. Superstar. pic.twitter.com/sPagm00Q8Q— OptaJoe (@OptaJoe) March 9, 2019
Christian Eriksen then rattled the crossbar with a free-kick, but Kane at last broke the deadlock 26 minutes in, gathering Dele Alli's fine floated pass and slotting the ball beyond Angus Gunn for his 200th career goal.
Saints improved after the break and should have levelled through Nathan Redmond, the winger shooting into the side-netting after finding space to the right of Hugo Lloris.
Redmond then wasted another good opening by clipping the outside of the net on the other side of the box, but Valery at last bundled in an equaliser when Danny Rose allowed Stuart Armstrong's cross to go through his legs.
Ward-Prowse then completed the unlikely turnaround with a strike from 25 yards out that curled away from Lloris and into the net, just a week after a similar effort eluded David de Gea at Old Trafford.
4 - Only Matt Le Tissier (7) has scored more direct free-kick goals for Southampton in the Premier League than James Ward-Prowse (4). Stunning.— OptaJoe (@OptaJoe) March 9, 2019
What does it mean? Spurs looking shaky in top-four fight
Pochettino's side looked for all the world to be easing to three points in the first half, but they simply did not react to Southampton's improved display after the break and have now lost three of their last four in the top flight.
The manner of the defeat will concern their manager, not least because Manchester United will join them on 61 points if they beat Arsenal on Sunday.
Saints, though, are up to 16th in the table, with a two-point cushion to the relegation zone.
Wizardry from Ward-Prowse
His goal was spectacular - only Matt Le Tissier has scored more direct free-kicks in the Premier League for the club - but Ward-Prowse was excellent overall, completing 89.3 per cent of his attempted passes.
Romeu run ragged
Having had a good game at Old Trafford, this was not Oriol Romeu's finest outing. He offered next to no protection to the back four in a first half in which he was booked after 10 minutes for flooring Lucas Moura. He was hooked at the break.
Key Opta facts
- Southampton picked up their first Premier League victory over Spurs since May 2016 (2-1 under Ronald Koeman), having failed to win any of the previous five.
- Tottenham have lost three consecutive away games in the Premier League for just the second time under Pochettino, previously doing so in November 2017.
- Valery (20 years and 15 days) is the youngest player to score in consecutive Premier League games for Southampton since Matt Oakley in September 1996 (19y 42d).
- Spurs striker Kane has now scored 200 career goals for club and country combined (180 at club level and 20 for England).
- More than half of Alli's assists for Spurs in the Premier League have been for Kane (54 per cent - 15 of 28).
These two teams have three weeks off now, thanks to the FA Cup quarter-finals and the international break. Spurs next play against Liverpool at Anfield on March 31, while Saints meet Brighton and Hove Albion the day before.