Chelsea suffered a double blow in the first half as they lost Pedro to injury early on and then fell behind just before the break.
Pedro had to come off after just seven minutes after tweaking a leg muscle, and the Blues paid the price for a sluggish start shortly before half-time.
Baba Rahman was at fault as the left-back misjudged a header and Shane Long nipped in between Branislav Ivanovic and Gary Cahill before poking past a hesitant Thibaut Courtois in goal.
Chelsea played at a slow tempo generally and Southampton’s in-form defence held firm to break a club top flight record of 667 minutes without conceding a goal.
Saints had gone close shortly after Pedro’s withdrawal when Shane Long headed wastefully over from close range, following Chelsea’s unconvincing attempts to clear a couple of corners.
Oscar produced the game’s first shot on target after 27 minutes, his low shot gathered by Saints keeper Fraser Forster, while Diego Costa – who abandoned his protective facemask during the half – rolled Virgil Van Dijk but lifted his effort over the bar.
Former QPR striker Charlie Austin fired wide on the turn for Southampton and Eden Hazard lashed over at the other end before Baba’s mistake led to Saints taking the lead.
Subs: Stekelenburg, Yoshida, Martina, Ward-Prowse, Mane, Tadic, Pelle.
Chelsea: Courtois; Azpilicueta, Cahill, Ivanovic, Baba; Mikel, Fabregas; Pedro (Oscar 7), Willian, Hazard; Costa.
Subs: Begovic, Matic, Loftus-Cheek, Kenedy, Oscar, Traore, Remy.