Jay Rodriguez opened the scoring after just 13 seconds but Jose Mourinho's men were greatly improved in the second half, with the defenders turning the tide.
The Blues looked to be in danger of slipping to their first home defeat in the top flight under Jose Mourinho when Jay Rodriguez was gifted the opening goal after only 13 seconds following a bad mistake from Michael Essien.
Essien was making his first Premier League start since May 2012 and, after he was substituted at halftime, the midfielder's blushes were spared as Chelsea fought back to secure all three points courtesy of Gary Cahill's first league goal of the season, Terry's towering header and Demba Ba's last-minute strike.
Southampton was forced to give goalkeeper Paulo Gazzaniga his first appearance in a year when Artur Boruc went off with an injury just after the equalizer and the youngster was beaten twice as the visitors slipped to their second defeat in London in the space of eight days.
Victory for second-place Chelsea ensured that it cut the gap on leader Arsenal to four points.
Mourinho made four changes to his starting lineup from the midweek defeat to Basel. Samuel Eto'o was replaced by Fernando Torres up front, while Eden Hazard and Juan Mata joined Essien in the starting line-up as Willian, Frank Lampard and John Obi Mikel dropped to the bench.
Defender Dejan Lovren returned for Southampton at the expense of Jos Hooiveld after missing the defeat at Arsenaldue to illness and striker Daniel Osvaldo was preferred to Rickie Lambert in attack.
Mourinho would have been eager for Essien to stamp his authority on the game but the Chelsea boss must have been questioning his team selection once again straight from the kickoff as the midfielder's attempted clearance looped into the air and into the path of Rodriguez, who kept his nerve to beat Petr Cech with a composed right-footed finish.
Essien's miserable afternoon continued when he was booked for diving after 32 minutes and Oscar headed straight at Boruc soon after the Brazilian had picked up an injury that resulted in Lampard replacing him five minutes before half-time. The Pole made an outstanding reflex save to claw out a Torres header after 43 minutes as Chelsea's frustration mounted.
Mourinho replaced Essien with Ba at the break and Boruc had to be alert once again to tip over Lampard's free kick, but Chelsea were level after 54 minutes when Ba diverted Branislav Ivanovic's header into the post and Cahill scrambled in the rebound from close range.
That proved to be the end of Boruc's afternoon as he was replaced by Gazzaniga due to injury and the young Argentinian keeper was picking the ball out of the back of the net just four minutes after coming on, when Terry rose highest to meet Mata's cross and headed into the far corner of the net.
Chelsea stayed on the front foot and Ba flashed a shot wide with his left foot after 71 minutes after shrugging off his marker but the Senegal striker was not to be denied in the 90th minute when he poked the ball inside the near post with his right foot after great work from Ramires on the left.