Liverpool and Manchester City served up a Premier League classic at Anfield, as the defending champions twice battled back to draw 2-2 on an evening when momentum swung wildly between the two title rivals.
The home side - all at sea and described as "a mess" by Sky Sports pundit Gary Neville during a first half in which City targeted struggling stand-in right-back James Milner - were transformed at the start of the second period and hit the front when Mohamed Salah played in Sadio Mane for his 99th Premier League goal (59).
The excellent Phil Foden arrowed in an equaliser against the run of play 10 minutes later but Salah again gave Liverpool the lead (76), scoring one of his finest goals in their colours by beating four City defenders and drilling home.
On the touchline Pep Guardiola was still incensed that Milner had not been shown a second yellow moments before the goal. But he was roaring with delight five minutes later, when Kevin De Bruyne hooked in City's second equaliser off Joel Matip (81).
There was still time for even more late drama, as desperate blocks from Rodri and Andy Robertson in the final moments prevented either side grabbing a late winner, but in the end a draw was a fitting result between the Premier League's standout sides in recent seasons, who look primed to battle it out with league leaders Chelsea over the course of this campaign.
Liverpool: Alisson (7), Milner (5), Matip (7), Van Dijk (6), Robertson (7), Fabinho (7), Henderson (5), Jones (6), Salah (9), Jota (6), Mane (8).
Subs used: Firmino (6), Gomez (6)
Man City: Ederson (7), Walker (7), Dias (7), Laporte (7), Cancelo (7), Bernardo Silva (8), Rodri (8), De Bruyne (7), Jesus (7), Foden (9), Grealish (5).
Subs used: Sterling (6)
Players of the match: Phil Foden and Mohamed Salah.
How it happened...
There was a tribute to Liverpool and England legend Roger Hunt before kick-off and the atmosphere had reached fever pitch by the first whistle. The hosts relished the occasion and were on the front foot in the early stages, with Diogo Jota almost playing in Mane.
However, City, who had been wayward with their passing under pressure in the opening minutes, were sparked into life after Jack Grealish, playing as a false nine, had a shot blocked by Matip.
- Liverpool made one change to the team which started in the Premier League at Brentford last weekend, with James Milner coming in at right-back for the injured Trent Alexander-Arnold.
- Manchester City went with the same starting XI which won at Chelsea last weekend, with Phil Foden once again a false nine, as he was in City’s win at Anfield in February.
A brilliant dribble from Bernardo Silva teed up Foden for a one-on-one which was saved by Alisson and De Bruyne shot across the face of goal as the defending champions began to take control - although a professional foul from Ruben Dias was required when the City defender's slip almost let Jota in.
James Milner, playing in place of the injured Trent Alexander-Arnold, saw wave after wave of City attack come down his side and was fortunate not to give away a free-kick on the edge of the box when he collided with Foden. The City forward - who had also starred at Anfield in February - crossed for De Bruyne to send a diving header over at the back post.
Milner was booked for a foul on Foden soon after and saw the 21-year-old race away and onto a brilliant Ederson pass just before the half-time whistle - but fortunately for the hosts, Alisson was out quickly to deal with the danger.
- How the teams lined up | Match stats
- Premier League fixtures | results | table
- Get Sky Sports - Latest offers
Liverpool ramped up their intensity at the start of the second half, with Dias forced to make a good tackle on Jota after Jordan Henderson had robbed Rodri, before the Portuguese forward fired off the Reds' first shot on target on 50 minutes.
And that revival was made to count nine minutes later when Salah glided past Rodri, drove at the City defence, and then released Mane to clinically slot in the opening goal.
With the Liverpool supporters roaring and Salah seeing a deflected free-kick go just wide, the tide had seemed to have turned. But out of nowhere City hauled themselves level. On 69 minutes, Gabriel Jesus bent a pass out to Foden on the left side and the Englishman drilled his shot across Alisson and into the far corner.
City were convinced Liverpool should have been reduced to 10 men when the already-booked Milner clattered into Bernardo, with Guardiola fuming at the decision to allow the Liverpool man to stay on the pitch. His mood worsened when Salah put Liverpool ahead again.
It was a moment of magic from the Egyptian, who produced wonderful skill to leave Cancelo, Bernardo, Foden and Aymeric Laporte in his wake before finishing brilliantly. He's now scored in seven games in a row across all competitions.
But remarkably City, who had only conceded once before in the league prior to this match, responded again. And it was De Bruyne who delivered for the visitors, sending a left-foot shot into the net with the help of a deflection off Matip.
Fabinho and Jesus looked like they may steal all three points during an end-to-end climax but vital blocks kept them at bay - and shared the spoils at the end of a fantastic contest.
What the managers said...
Liverpool boss Jurgen Klopp: "An exciting game, with two completely different halves. Thank God there were two halves because the first was exactly how we shouldn't do it against City, the second was how we should.
"In the first half, I can't remember a chance from us. We didn't change anything, we just told the boys what we should have done. Things like this can happen against a team like City, with their quality. Our biggest problem was we didn't play football.
"If we played only the second half, I'd have liked to have won the game but with the first half, a point was fine. The (Milner) situation was too far away but we took Milly off because of the yellow card.
"It's a really good lesson for us today, to show a reaction and that was absolutely great. The second half was us, we caused them massive problems.
"Salah's goal - only the best players in the world score goals like this. People will talk about this goal for a long, long time."
Man City boss Pep Guardiola: "What a game. That is the reason the last year, Man City and Liverpool were always there because we try to play in this way. Unfortunately, we couldn't win - but we didn't lose. That's why the Premier League is the best [that it could go either way]. It was great, really great.
"It is what it is. The result is the result and we cannot change it. I know how difficult it is against these players and this manager. Every time it is an incredible challenge for us. The way we played at Stamford Bridge, in Paris and today shows we are a great team.
"When we lose the way we play in Paris [against Paris St-Germain] and draw today it is good. I pray we continue and players come back from their national teams safe."
On whether James Milner should have been showed a second yellow card: "It's a yellow card. It's a yellow card. It's clear. It's Anfield, it's Old Trafford. In our situation, a City player is sent off. It's too much clear. It was a second yellow."
- Liverpool have only managed to beat Manchester City on one of the last seven occasions in the Premier League (D3 L3), conceding 14 times across those seven fixtures.
- Liverpool remain the sole Premier League side yet to lose in the top-flight this season (W4 D3), extending their unbeaten run in all competitions to 19 matches (W13 D6) since their 1-3 defeat to Real Madrid back in April.
- Manchester City conceded more goals this evening (2) than in their previous seven Premier League games combined beforehand (1), whilst they faced four shots on target against Liverpool, only two fewer than they had in their six other Premier League matches combined this season (6).
- Mohamed Salah has either scored (9) or assisted (3) in eight of his nine games in all competitions for Liverpool this season, having a direct hand in more goals so far in 2021-22 than any other Premier League player (12).
- Liverpool had just one shot in the first half, their fewest in the opening 45 minutes of a Premier League match at Anfield since January 2017 against Chelsea (also one), a game that went on to finish 1-1.
- After no goals and three assists in six Premier League games against Liverpool, Man City's Kevin De Bruyne has now had a direct hand in four in his last three against the Reds (2 goals, 2 assists).
- Mohamed Salah has now scored in seven matches in a row in all competitions, equaling his best ever scoring run with Liverpool, doing so for the first time since April 2018.
Liverpool go to Watford after the international break for a 12.30pm kick-off on Saturday October 16, while Man City will pick up again at home to Burnley on the same day at 3pm.