Man City scored four goals after half-time to produce a brilliant comeback to beat Premier League rivals Tottenham Hotspur at the Etihad.
The hosts were rocked when Tottenham struck twice through Dejan Kulusevski and Emerson Royal just before the interval.
Pep Guardiola’s side faced the prospect of falling further behind leaders Arsenal but they roused themselves after the break.
Julian Alvarez pulled one back and Erling Haaland, with his first goal in four games, restored parity before the influential Mahrez secured victory with a double.
The turnaround prevented City sinking to a third successive defeat in all competitions and will probably have left Arsenal bemoaning their rivals’ inability to land another blow on the champions.
Manager Guardiola had responded to City’s recent problems, including Saturday’s derby loss to Manchester United, by shaking up his side.
His changes surprisingly included naming Kevin De Bruyne among the substitutes while World Cup-winner Alvarez was offered a rare chance to start in the same side as Haaland.
Without De Bruyne, City did lack dynamism but such was the control they exerted in the first half that it was remarkable they ended it 2-0 down.
Mahrez fired a free-kick into the wall, Ilkay Gundogan curled a shot just wide and Alvarez had an effort blocked. Rodri was also shut down on the edge of the area and Hugo Lloris saved well from a deflected shot from impressive youngster Rico Lewis.
Haaland was quiet but still headed a good chance over and was denied by Lloris after another run into the area.
Yet Spurs still carried a threat and only a vital header from Nathan Ake prevented Kane unleashing a volley while Son Heung-min headed at Ederson.
The visitors were gifted the opener when Ederson played Rodri into trouble with a poor pass and Kulusevski steered into the net after pressure from Rodrigo Bentancur.
City hardly had time to regroup before they conceded again, Ederson again culpable as he palmed a Kane cross towards Emerson, who simply headed back into the goal.
City were booed by a small section of fans as they headed for the dressing room but their response was remarkable.
Mahrez took control of affairs and, after his cross into the box resulted in a goalmouth scramble, Alvarez lifted the ball into the roof of the net to reduce the deficit six minutes after the restart.
Mahrez was again involved as City equalised two minutes later. This time the Algeria winger headed across goal to tee up Haaland’s 28th goal of the season from close range.
Spurs tried to respond and were unlucky when an Ivan Perisic shot was deflected onto the post by Lewis, but they generally struggled to contain City.
They were undone by Mahrez again when he turned Perisic and raced into the area to drive a low shot through the legs of Lloris and put City ahead.
Spurs pushed but could not get back into the game and Mahrez wrapped up the points late on after seizing on an error by Clement Lenglet and clipping home.
READ MORE: 16 Conclusions from the table that *matters* – the Deloitte Money League