Southampton broke the deadlock three minutes before the break when Shane Long buried a low finish for his 12th goal of the season, but Chelsea hit back through Cesc Fabregas, who converted Diego Costa’s cross in the 75th minute.
Ivanovic secured all the points for Chelsea in the 89th minute when he headed home Willian’s cross.
Marko Arnautovic’s double ensured a second straight league win for Stoke, whose 2-1 victory over Aston Villa inflicted a 17th league defeat of the season on the bottom club.
Arnautovic struck twice in five minutes early in the second half to put Stoke in control, converting a 51st-minute penalty after Ashley Westwood’s foul on Phil Bardsley before turning home Xherdan Shaqiri’s cross from close range soon after.
Leandro Bacuna pulled one back for Villa with his first goal of the season in the 79th minute, but Remi Garde’s side remain eight points adrift of safety.
Bournemouth earned a valuable point in their bid to steer clear of relegation trouble following a goalless draw at Watford.
Saido Berahino took another step towards redemption by playing a starring role in West Brom’s 3-2 victory over Crystal Palace.