The home side came into this game on the back of a Derby defeat against Manchester United and they were under pressure to bounce back strongly.
Kevin de Bruyne opened the scoring on the 15th minute but Southampton got back into the game 10 minutes later when James Ward Prowse converted from the penalty spot.
Algerian winger Riyad Mahrez restored his side’s lead on the 40th minute with a sublime effort and Ilkay Gundogan made it 3-1 to the home side with his 12th goal of the season at the stroke of half time.
The German midfielder converted from a rebound to put City firmly in control at half time.
Riyad Mahrez bagged the fourth goal of the game on the 55th minute and Southampton responded immediately through Che Adams.
However first-half goalscorer Kevin De Bruyne had his say once again and he put the home side 5-2 ahead around the hour mark.
Manchester City will feel that they should have had a penalty when Phil Foden was brought down in the Southampton box by McCarthy.
Guardiola will be delighted with how his side bounced back from their first loss in 16 Premier League matches and they have now extended their lead over second-placed Manchester United to 14 points.
City are now six wins from the Premier League title and they will be form favourites to go all the way and lift the trophy this season.