Peter Crouch's late winner secured a hard-fought 2-1 victory for Stoke at home to Southampton on Saturday.
Mame Biram Diouf nodded the hosts ahead after 40 minutes before Saido Berahino saw his penalty saved by Fraser Forster.
Virgil van Dijk, making his first Southampton start for eight months, conceded the spot-kick for his challenge on Berahino, who stepped up to miss his fourth successive spot-kick during a goalless drought that stretches back to February 2016.
It looked like the visitors had earned a draw when Maya Yoshida equalised on 75 minutes, but substitute Crouch snatched the three points 10 minutes later with a close-range finish after a goalmouth scramble.
Nathan Redmond and Shane Long earlier squandered good chances for Southampton before the hosts went in front through Diouf - the striker nodding home Xherdan Shaqiri's excellent delivery to break the deadlock in an even encounter.
They should have doubled their lead three minutes later when Van Dijk brought down Berahino, but the Stoke forward was denied by Forster.
The home side wanted a second spot-kick shortly after half-time when Dusan Tadic appeared to handball Shaqiri's cross but referee Mike Jones turned down the appeal.
Still, Southampton pressed after the break as Mauricio Pellegrino introduced Sofiane Boufal, Charlie Austin and Manolo Gabbiadini and those attacking moves paid off.
Boufal made the difference as his run and cross helped tee up Yoshida, who volleyed home a spectacular leveller.
But the visitors' joy was short-lived as substitute Crouch turned in Eric Maxim Choupo-Moting's goalward poke to secure Stoke's second win of the campaign.
There was still time for Southampton to push forward again and they went close through Gabbiadini and Austin but Stoke held on.
Match stats
- Two of the three lowest possession figures by winning teams in the Premier League this season have involved Stoke (22.9% v Arsenal in August and 29.6% v Southampton today).
- Southampton have suffered their first top-flight away defeat in five games, since losing to Chelsea in April (W2 D2 L1).
- Saido Berahino is now without a goal in 31 hours & 48 minutes of Premier League football.
- Crouch is the oldest player to score in the Premier League this season (36y 243d old).
The managers
Mark Hughes: "It was important to get the win. We have had some really difficult home games against some top sides and Southampton themselves are a very good side in this league.
"They have finished above us over the last few years so we knew it was another difficult home fixture. We found a way to get maximum points, it was a little bit scruffy towards the end, but Crouchy has come on and made the difference at the top end of the pitch."
Mauricio Pellegrino: "We were unlucky, we were pushing until the end and we put them under pressure all the time. It's part of football. They scored two goals and we scored one, we have to learn for the future."
The pundit
Phil Thompson: "Berahino picked the ball up for the penalty and was desperate to take it. You think, after all that, he didn't have the time to settle.
"It was a good save by Forster, but it wasn't in the corner. Berahino will be kicking himself."
Man of the match - Kurt Zouma
The on-loan Chelsea defender was ineligible for Stoke's 4-0 defeat to his parent club last weekend but returned on Saturday to produce a superb display at the heart of the Potters' defence.
He kept Shane Long in check and put his body on the line on several occasions to deny Southampton's attackers, especially after the introduction of Gabbiadini and Austin.
With Ryan Shawcross and Bruno Martins Indi absent through injury, it was a vital performance in a crucial win for the hosts.
What next?
Stoke face one of their toughest tests of the season next as they travel to Manchester City after the international break.
As for Southampton, they resume at home to Newcastle, live on Sky Sports Premier League.