The former Saint struck five minutes from full-time, atoning for Saido Berahino’s missed penalty, which was the result of a clumsy challenge by Virgil van Dijk.
Maya Yoshida had cancelled out Mame Biram Diouf’s opening goal, before Crouch poked home from close-range to make it 2-1.
Van Dijk, meanwhile, was making his first start for Southampton following a failed move this summer.
The defender’s last start came in January during which he left with an injury ending his season, but replaced compatriot Wesley Hoedt in the Southampton line-up.
Fraser Forster, who was recalled into the England squad, was the busier of the two keepers early as he denied Xherdan Shaqiri and Maxim Choupo-Moting.
Jack Butland kept out Shane Long from close-range after Oriol Romeu cleverly played in the striker on goal.
Stoke’s breakthrough, however, came just before half-time when Diouf nodded in from a free-header from Shaqiri’s corner aimed at the near post.
Berahino had a chance to double the lead from the spot after van Dijk clipped down the striker. But the 24-year-old, who had missed his last three penalties, was bested by Forster.
Southampton would make use of the lifeline on 75 minutes when Yoshida’s acrobatic effort went in off the crossbar to level the match.
The defender — then bestowed with the captain’s armband following Steven Davis’ substitution — met a flick-on from Shane Long after Sofiane Boufal crossed into the box.
Stoke was rescued, however, by a familiar face for Southampton fans in deja vu fashion to the end of last season.
Choupo-Moting had his initial effort blocked by Forster, but at the second attempt, he played the ball towards goal where Crouch scored his third goal of the season from in close.
Stoke City: Butland, Cameron, Wimmer, Zouma, Fletcher, Allen, Pieters, Diouf (Johnson), Berahino (Crouch), Choupo-Moting, Xherdan Shaqiri (Afellay).
Unused subs: Grant (GK), Adam, Tymon, Sobhi.
Goals: Diouf (40), Crouch (85).
Bookings: Allen (30).
Southampton: Forster, Bertrand, Yoshida, van Dijk, Cedric, Romeu, Lemina (Austin), Davis (Boufal), Redmond (Gabbiadini), Tadic, Long.
Unused subs: McCarthy (GK), Hoedt, Ward-Prowse, Hojbjerg.
Goals: Yoshida (75).
Bookings: Tadic (52), Romeu (56).