Joao Cancelo set the champions on their way to a routine win before Phil Foden grabbed his fifth goal in three matches. Riyad Mahrez made it three early in the second half before Haaland scored his customary goal to make it four.
Southampton faced the uneviable task of trying to stop a City side that had struck 20 goals in the past five matches in all competitions and of course Haaland, who went in search for a fourth successive home hat trick in the league, but had to settle for just the one this time.
Haaland hit the post inside the opening 15 minutes before City broke the deadlock through Cancelo, who found the net after a fine solo run. Foden doubled the lead on 32 minutes when he was afforded far too much space and he made no mistake, chipping the ball over Gavin Bazunu.
Southampton made it to half time with just the two-goal deficit but four minutes after the restart, the gap widened further as City started to take control. Rodri’s pass found Mahrez and he volleyed in for City’s 44th goal of the season — quite the feat in the first week of October.
Pep Guardiola took goalscorer Foden off with the game won, though the Etihad crowd grew increasingly surprised as Haaland failed to find the target. They need not have worried, though, as his goal eventually came on 65 minutes to make it 20 for the season.