Premier League leaders City were contentiously denied a penalty with the score 1-1 in the first half after Saints goalkeeper Alex McCarthy was adjudged not to have fouled Phil Foden and VAR did not overrule.
But City responded to win convincingly as Mahrez put them ahead and then set up Ilkay Gundogan to make it 3-1 at the Etihad Stadium before half-time.
The Algerian added another after the break and De Bruyne scored a fifth after Che Adams had pulled one back.
De Bruyne had also opened the scoring in the 15th minute with James Ward-Prowse replying from the penalty spot.
The result extended City’s lead at the top of the table to 14 points and saw them return to winning ways after Manchester United ended their run of 21 successive victories at the weekend.
City appeared to be suffering a hangover from that Manchester derby defeat as they began unusually sluggishly.
Yet for all their positivity, Saints were unable to create any clear-cut chances and they were caught out as City took the lead from their first serious attack.
The move was started by Ruben Dias, who picked out Oleksandr Zinchenko with a superb crossfield pass.
Zinchenko then fed Foden and, although his shot was parried by McCarthy, De Bruyne was on hand to thump home off the underside of the bar.
Southampton quickly drew level. Nathan Redmond did well to get between Aymeric Laporte and Dias and force a good save from Ederson.
The trouble continued for City from the resulting corner as Jannik Vestergaard tested Ederson with a powerful header and was fouled by Laporte in the process.
Referee Jon Moss pointed to the spot and Ward-Prowse fired down the middle.
Controversy erupted soon after as City felt they should have had a penalty themselves. McCarthy went in feet first on Foden and appeared to catch him on the ankle after the City midfielder had taken advantage of an error by the keeper.
Moss, presumably thinking McCarthy had got a touch on the ball, gave nothing and City – particularly manager Pep Guardiola on the touchline – were incredulous when VAR did not intervene.
Foden, to his credit, quickly got back to his feet in an attempt to score but the chance was gone.
The incident appeared to unsettle City as Ward-Prowse tested Ederson from distance and Moussa Djenepo fired wide but Mahrez changed the course of the game with two moments of brilliance.
First he restored City’s lead as he cut in from the left to collect a pass from the right and bend a shot around McCarthy from the edge of the area.
Mahrez was then instrumental in making it 3-1 after weaving through the area and firing against the post. Gundogan tapped in the rebound.
The Mahrez show continued as he scored City’s fourth after 55 minutes. He turned in the area from a Foden pass and then skipped round Ward-Prowse before beating McCarthy again.
That was the first of three goals in a frantic four minutes.
Southampton caught the City defence napping to pull one back when Adams benefited from a ricochet to strike from close range.
City replied again as De Bruyne combined well with Foden before expertly placing the ball past McCarthy.
Mahrez and De Bruyne may have felt unfortunate to be replaced after their starring roles but, with City finally in firm control, Guardiola was able to introduce Sergio Aguero for only the third time since January 3.
Adams thought he had claimed a Saints consolation late on but he was flagged offside.