Manchester City Player ratings
Ederson - 7/10
The most involved of the two goalkeepers in the first half, Ederson had to be alert to deny Firmino with a good save.
However, the Brazilian could not save Salah's penalty, which was the only Liverpool shot on target the Manchester City goalkeeper faced in the second half.
Joao Cancelo - 7/10
The Portuguese was very solid defensively, keeping the usually lively Sadio Mane at bay. Joao Cancelo made four tackles and two interceptions in the game.
John Stones - 8/10
The quieter of Manchester City's defensive duo, John Stones was on hand to play out the balls his partner won from the back. He had a team-high six clearances and also scored a goal which was chalked off for offside, though.
Ruben Dias - 6.5/10
Ruben Dias was an absolute rock at the back for Manchester City. The Portuguese was the more active of the two Manchester City central defenders, as he cleared the danger for his side and won multiple duels.
Dias' only fault all game was the penalty he conceded, which, in all fairness, looked like a soft one.
Oleksandr Zinchenko - 7/10
The Ukrainian pretty much dealt with everything that came his way. Oleksandr Zinchenko was on hand to clear the ball out of the danger zone and intercepted dangerous passes. He also kept the dangerous Mohamed Salah quiet.
Rodri - 7/10
Rodri was a very calming presence in the heart of the Manchester City midfield. The Spaniard had the most touches and passes in the first half and was very tidy in possession all game.
Ilkay Gundogan - 8/10
The in-form Ilkay Gundogan squandered the best chance of the first half, as his poorly-struck penalty failed to test the Liverpool goalkeeper.
However, the German redeemed himself in the second half, scoring two goals to continue his rich vein of recent form.
Bernardo Silva - 7.5/10
Bernardo Silva was quiet in the first half but sprung to life in the second, playing some beautiful threaded passes infield.
He did well to intercept Allison's hurried clearance before lifting a gorgeous ball to Raheem Sterling for a simple header.
Riyad Mahrez - 6.5/10
Riyad Mahrez had an uncharacteristically quiet evening, and he almost seemed uninterested. He was more involved in the second half, looking to complete take ons and put in crosses. But the Algerian didn't have his usual dominance on the evening and was the only Manchester City substitution on the night.
Raheem Sterling - 7.5/10
The captain for the evening won a penalty for Manchester City with some fancy footwork in the penalty area.
Raheem Sterling was all over Liverpool's defence, especially Alexander-Arnold. The Englishman was rewarded for his efforts with a simple header into an empty goal for Manchester City's third.
Phil Foden - 8/10
Playing in an unfamiliar false nine role, Phil Foden looked a little lost for most parts of the first half. He came alive in the second half, however, and was almost impossible to deal with by Liverpool.
His darting runs were hard to read by the opposition. Foden was on hand to provide the assist for Gundogan's first goal before driving a bullet past Allison.
Ratings of Manchester City Substitutes
Gabriel Jesus - 7/10
Gabriel Jesus came in for an uninspired Riyad Mahrez and looked the part. He showed his quick feet and mind, providing the assist for Manchester City's final goal of the game with a lovely threaded pass for Phil Foden.