Leicester striker Jamie Vardy was bidding to equal Jimmy Dunne's 83-year-old English top-flight record by scoring for the 12th game running, but it was Mahrez who stole the show at the Liberty Stadium.
The Algerian winger took his tally for the campaign to 10 goals, putting him joint-second behind 14-goal Vardy in the scoring charts and lifting Claudio Ranieri's men two points clear at the top of the standings.
Mahrez broke the deadlock in the fifth minute when Marc Albrighton's left-wing corner struck him and bounced in, before N'Golo Kante's pass enabled him to run through and add a second goal in the 22nd minute.
After Ki Sung-Yueng had hit the bar for the hosts, Vardy teed up Mahrez for his hat-trick goal in the 67th minute as Leicester generated yet more negative headlines for Swansea manager Garry Monk.
Manchester City were well beaten at a windswept Britannia Stadium, where Stoke prevailed 2-0 courtesy of a pair of early goals that were each created by Xherdan Shaqiri and finished by Marko Arnautovic.
Manuel Pellegrini's side were left in third place, three points behind Leicester, and the City manager blamed fatigue for his team's performance.
“We are playing in other competitions with the same 13 or 14 players,” said Pellegrini, whose side have won only once in four league outings.
“In this game we are playing with the same players in the last three games. Maybe it's the reason why we didn't play with the energy that we need to win.”
Arsenal also exploited City's misstep at Stoke with a 3-1 home win over Sunderland that took Arsene Wenger's side up to second place in the table.
Missing Alexis Sanchez and Santi Cazorla through injury, Arsenal took a 33rd-minute lead when Mesut Ozil's 12th assist of the season allowed Joel Campbell to slot the home side in front.
Olivier Giroud's own goal from Yann M'Vila's free-kick saw Sunderland level, but the Frenchman atoned in the 63rd minute by heading in a cross from Aaron Ramsey, who also found the net in stoppage time.
But Manchester United were unable to follow Leicester and Arsenal's lead, registering a 0-0 draw at home to West Ham United that left them level on points with City in fourth place.
Shorn of the injured Wayne Rooney, it was a frustrating outcome for Louis van Gaal's side, who face Wolfsburg in Germany on Tuesday needing to win to be certain of progressing in the Champions League.
But it could have been far worse, with Winston Reid hitting the post with a header for West Ham and Mauro Zarate shooting wastefully wide from Andy Carroll's lay-off early in the second half.
Fifth-place Tottenham Hotspur also failed to make ground on the teams above them, drawing 1-1 at West Bromwich Albion after James McClean cancelled out Dele Alli's volleyed 15th-minute opener for Spurs.
Oriol Romeu scored a 73rd-minute equaliser to earn Southampton a 1-1 draw at home to bottom club Aston Villa, who had gone ahead through Joleon Lescott shortly before half-time.
Meanwhile, Troy Deeney's 30th-minute penalty -- his fifth goal in six league outings -- and a late Odion Ighalo strike saw Watford win 2-0 at home to fellow promoted side Norwich City.
Champions Chelsea host Bournemouth later on Saturday. – AFP
Original source: Mahrez hat-trick sends Leicester top