Phil Foden appeared to have put City ahead early in the second half, only to see his strike ruled out for an Erling Haaland foul after referee Anthony Taylor went to the pitchside monitor.
Both sides had the chances to win a match played at the frantic pace we have become used to since Pep Guardiola and Jurgen Klopp arrived in England, but it was Liverpool who came out on top thanks to Salah’s 76th minute finish.
Story of the match
Our hosts started on the front foot, forcing Ruben Dias into a couple of vital early interventions.
We soon enjoyed some attacking space of our own though, with Ilkay Gundogan striking a bouncing volley that Alisson did well to hold on to.
Then it was Ederson’s turn to help his team, comfortably pouching a Diogo Jota header before a crucial interception from a James Milner cross that looked destined to find a waiting red shirt.
Erling Haaland had his first chance of the afternoon in the 33rd minute, racing on to a probing Phil Foden pass. With the angle tightening and Alisson advancing, our No.9 attempted a lob that the Brazilian goalkeeper read and responded to.
His second came moments later, leaping to meet Kevin De Bruyne’s improvised cross but looping his header over the bar.
The duo combined yet again for the final major opportunity of the half as City broke following a spell of Liverpool possession, with the Norwegian striker this time forcing Alisson into a save on his line.
Mo Salah had the first chance of the second half and looked certain to put Liverpool one goal up, only to be denied by Ederson at his best. Our goalkeeper met the Egyptian forward on the edge of his box and diverted the shot narrowly wide of the post.
From one end to the other almost immediately, Foden looked to have put City in the lead when he forced a loose ball in from a tight angle.
However, Anthony Taylor was advised to take a second look and the goal was soon ruled out as Haaland was adjudged to have pulled down Fabinho.
That brought Anfield to life, and the hosts had another outstanding chance when Jota directed his header past Ederson and onto the woodwork.
Haaland had another opening just after the hour mark, curling a low shot from 20 yards but Alisson was again equal to it.
Liverpool’s winner then came in the 76th minute when Salah gave Cancelo the slip before lifting it over the onrushing Ederson.
City responded fiercely but it wasn’t enough to find an equaliser, while Klopp was sent off in the closing minutes after responding angrily to a perceived foul on Salah.
CITY XI: Ederson, Akanji, Dias, Ake, Cancelo, Rodrigo, Gundogan (c) (Alvarez 89), De Bruyne, Bernardo, Foden, Haaland
Subs: Ortega Moreno, Grealish, Gomez, Laporte, Mahrez, Palmer, Lewis, Wilson-Esbrand
LIVERPOOL XI: Alisson, Milner, Gomez, Van Dijk, Robertson, Fabinho (Henderson 73), Thiago, Elliott (Carvalho 73), Jota (Tsimikas 90+7), Salah (Alexander-Arnold 90), Firmino (Nunez 73)
Subs: Kelleher, Jones, Bajcetic, Phillips
Man of the match
Bernardo Silva – Asked to play a number of different roles across the 90 minutes, the Portuguese playmaker’s tireless work ethic had him cropping up all over the pitch.
He started alongside Rodrigo in midfield, then moved further forward as we took more of a hold of the ball.
On a day when time on the ball was scarce, Silva’s first touch and calm nature was crucial while his incredible fitness levels were pivotal in winning the ball back as quickly as possible.
We have become used to a 4-3-3 formation throughout Pep Guardiola’s time at City, but the manager is comfortable with switching things up.
Joao Cancelo started at right-back while Bernardo Silva, expected by many to play off the right wing, was in midfield alongside Rodrigo.
That gave Kevin De Bruyne room in the right channel that he loves and from where he has so far proved so potent when searching for a way to feed Erling Haaland.
The 40th minute move that saw De Bruyne freed up in the inside right position and scoop a cross onto Haaland’s forehead perfectly encapsulated the benefits of the formation and on another day, could easily have created a goal.
Pep Guardiola reaction
“We conceded a goal because of a mistake, and we didn’t follow the transition," said Pep.
"Alisson plays it out quick, Kevin didn’t follow, and Joao lost the duel - it is always so difficult against Salah with the way he uses his body.
“This is something we have to learn for future tight games against Liverpool, but the way we played, the performance and the courage we played with was fantastic.”
What it means
We remain in second place with 23 points, although we are now four points behind leaders Arsenal.
We are level on points with third place Tottenham Hotspur, while today’s opponents Liverpool have 13 points from nine games.
After the postponement of our midweek meeting with Arsenal due to their involvement in the Europa League, our next match will be the visit of Brighton & Hove Albion next Saturday.
Roberto De Zerbi’s side will come to the Etihad Stadium for a 15:00 kick-off at the start of another busy period before the 2022 World Cup.
News about Liverpool v Man City
‘We played with courage’ says Guardiola
Pep Guardiola says he was happy with the way his team performed in the 1-0 defeat to Liverpool. Read more
Gundogan disappointed following loss at Liverpool
Ilkay Gundogan admits he and his City team-mates are disappointed following Sunday's Premier League 1-0 defeat against Liverpool. Read more
Liverpool 1-0 City: Short highlights
Catch up with the best action from our Premier League meeting with Liverpool in just two minutes. Watch more
Ederson's Anfield stop nominated for October Save of the Month award
Ederson’s stunning one-on-one save to deny Mohamed Salah is up for Castrol’s Premier League Save of the Month for October. Read more
Liverpool 1-0 City: Extended highlights
Watch the extended highlights from City's Premier League clash with Liverpool at Anfield. Watch more
Full-match replay: Liverpool v City
Watch the full 90 minutes of City's Premier League trip to tackle Liverpool on CITY+ and Recast. Watch more