Charlie Adam’s late strike completed the fightback to steal the points for the hosts, who were outplayed for large parts of the game and behind at the break thanks to Morgan Schneiderlin’s fourth Premier League goal of the season.
But Mame Biram Diouf’s bizarre equaliser just after half-time levelled matters before Adam crashed home the winner in a crowded area with five minutes remaining.
The result was tough on the visitors, who remain sixth, five points behind fourth-placed Manchester City, who have a game in hand.
For Mark Hughes’ side, they consolidated their place in the top half of the table, moving above West Ham into ninth.
A feisty, open game in the Staffordshire sunshine saw Saints take the lead on 22 minutes when Schneiderlin got the final touch at the far post from Jose Fonte’s near-post header.
Ronald Koeman’s men might have already been ahead had referee Mark Clattenburg decided Stephen Ireland’s clumsy push on Sadio Mane was worthy of a penalty, while Graziano Pelle fired into the side-netting from Mane’s expert turn and slide-rule pass.
Once Schneiderlin had scored, Nathanial Clyne was grateful to only see yellow following a two-footed sliding challenge on Glenn Whelan and the England right-back, restored to the starting line-up after missing the victory over Hull last week, then fired over the bar as Southampton’s passing game began to pull their hosts all over the pitch.
Despite being bright in possession and sharp in the challenge, Stoke were struggling to create, yet should have been level just before the break, when a long ball into the box was flicked on by Marko Arnautovic, but Stephen N’Zonzi could only poke the ball wide from five yards out with the goal beckoning.
But they did have their goal immediately after half-time after a horrible error by Southampton keeper Kelvin Davis.
N’Zonzi’s chipped ball over the top from 30 yards out was over-hit and looked to be sailing out of play; Davis certainly thought so, but it dipped in the breeze and hit the bar before rebounding to Diouf, who was unerring in his half-volley from eight yards out.
Still, Southampton remained the team most likely, with Mane’s pace in behind a constant threat and he was unlucky to be flagged offside when clean through before beating Asmir Begovic to a through-ball. The Stoke keeper managed to hold him up on the edge of the box, but Mane found Dusan Tadic, whose goalbound effort was cleared off the line by Whelan.
And Stoke looked out of ideas and ready for a point when Southampton failed to clear a long-free-kick into the box, allowing Arnautovic’s subsequent cross to fall to Adam via Jonathan Walters’ blocked shot and the midfielder crashed home through a crowded area from 10 yards.
Hoping to mount a late response, Southampton were stymied by what looked a serious injury to Toby Alderwierald, forcing them to play the last few minutes with only 10 men and Stoke were able to hold on comfortably.
Soccer Saturday verdict – Charlie Nicholas
“First half, when they were leading, Southampton were the best team. They passed it better, had more quality going forward.
“Stoke didn’t play particularly well, but a bit of good fortune for Stoke turned it around. Schneiderlin got the first goal and Southampton should have gone on to get a second. The equaliser was crazy, such a slice of luck. Charlie Adam was offside for the winner too. Very lucky.”
Stoke: Begovic (7), Cameron (6), Wollscheid (7), Shawcross (7), Pieters (7), Whelan (7), N’Zonzi (7), Ireland (6), Diouf (8), Arnautovic (7), Walters (7)
Subs: Bardsley, Sidwell (6), Butland, Teixeira, Crouch (6), Wilson, Adam (8)
Southampton: Davis (5), Yoshida (6), Fonte (7), Alderweirald (7), Clyne (7), Schneiderlin (8), Davis (6), Bertrand (7), Mane (8), Tadic (6), Pelle (7)
Subs: Gardos, Ward-Prowse (6), Elia (5), Gazzaniga, Reed, Targett, Long (5)
Man of the match: Morgan Schneiderlin