The Egyptian forward’s stunning goal in the 76th minute sealed a 1-0 win in a crackling contest at Anfield after the Gunners beat Leeds by the same scoreline.
Elsewhere, a Mason Mount double secured a 2-0 win for Chelsea at Aston Villa and Manchester United played out a 0-0 stalemate at home to Newcastle, while Southampton drew 1-1 with West Ham.
Liverpool and City could not be separated in the first half at Anfield but the game caught fire after the break.
Jurgen Klopp’s team had a glorious chance to take the lead early in the second half when Salah broke clear but City goalkeeper Ederson managed to get a faint touch to tip his shot wide.
The visitors thought they had snatched the lead moments later through Phil Foden but VAR spotted a foul by Erling Haaland on Fabinho in the build-up and the goal was disallowed.
Instead it was Liverpool who struck, with Salah spinning past Joao Cancelo on the halfway line as the pair challenged for an Alisson Becker clearance and racing away to fire beyond Ederson.
The game became heated in the closing stages and referee Anthony Taylor sent Klopp to the stands for the German’s angry reaction to a perceived injustice.
But Liverpool repelled City’s desperate attacks in the closing stages to secure just their third league win in nine games after a poor start to the season.
“Against the best team in the world it is incredibly hard, but we deserved the three points with an incredible performance,” Klopp told the BBC.
“Nobody could set a high press so you have to be smart, and we were, and you have to defend with a big heart, which we did. It was a game of real passion and we go there in the end.”
Guardiola praised his team’s performance in the feverish atmosphere but bemoaned the disallowed goal.
“The referee says play on, play on, play on,” he said. “How many thousand million fouls he has almost given? But the goal was not given.”
Earlier, England midfielder Bukayo Saka slammed home emphatically 10 minutes before the interval at Elland Road as Mike Arteta’s Arsenal won for the ninth time in 10 league games this season to reach 27 points.
Leeds substitute Patrick Bamford missed a penalty and his side had another spot-kick decision in stoppage time, initially awarded by referee Chris Kavanagh, overturned after a VAR intervention.
Earlier, play was suspended seconds after kick-off when the match officials lost contact with the video assistant referee and goal-line technology due to a power cut.
Kavanagh led the players off the pitch to a chorus of boos and play did not resume for about 40 minutes.
Chelsea’s fourth consecutive league win came courtesy of Mount’s two goals plus an inspired performance from goalkeeper Kepa Arrizabalaga.
Mount’s first came after Villa defender Tyrone Mings - in the sixth minute - miscued a simple header straight to the England midfielder, who finished coolly past Emiliano Martinez.
Despite their early gift, Chelsea struggled to find attacking fluency and were indebted to Arrizabalaga, whose best save came from a point-blank header from Danny Ings.
Mount doubled the visitors’ lead in the 65th minute, curling home a free-kick from 25 yards after he was brought down by Mings.
Cristiano Ronaldo was handed just his second start of the Premier League season against Newcastle but could not add to his tally of 700 club goals - a milestone he reached last week against Everton.
Eddie Howe’s visitors could have been ahead at the break after an impressive first half in which Joelinton hit the crossbar before turning the rebound onto the post.
But United rued two squandered late chances to win the game, with Fred and substitute Marcus Rashford both guilty.
United manager Erik ten Hag bemoaned the late misses.
“In the end we could - we should - have score the winning goal,” he said. “One from Fred, and then (Marcus) Rashford had to score.
“In the end we could have got the win. We deserved the win.”