Erling Haaland scored his 24th goal of the season and Kevin De Bruyne delivered a masterclass as Manchester City beat holders Liverpool 3-2 to reach the EFL Cup quarter-finals.

The two heavyweights served up a thriller at the Etihad Stadium in their first game after the World Cup break, and it was the Premier League champions who deservedly came out on top.

Haaland opened the scoring, only for Fabio Carvalho to equalise in the first half of a pulsating tie on Thursday.

Riyad Mahrez restored City's lead right at the start of the season half, but Mohamed Salah soon levelled with his 15th goal of the campaign.

The outstanding De Bruyne then provided a second assist of the game for Nathan Ake, and Jurgen Klopp's men were unable to respond for a third time, suffering a first defeat to City in six matches.

Liverpool had been unable to cope with City's early intensity, and Haaland netted the opener 10 minutes in, getting in front of Joe Gomez to volley De Bruyne's pinpoint cross into the bottom-left corner.

The Reds were level from out of the blue 10 minutes later, Carvalho calmly stroking into the far corner after James Milner picked him out in the penalty area.

Caoimhin Kelleher denied Ilkay Gundogan and Ake after they were brilliantly set up by De Bruyne, before Darwin Nunez twice drilled wide.

Mahrez caught Liverpool out with a great touch from Rodri's pass before firing home just over a minute into the second half, yet City's lead only lasted 79 seconds as Nunez showed great pace to get away down the left and unselfishly laid an equaliser on a plate for Salah.

Liverpool were punished for another defensive lapse just before the hour-mark, though, switching off from a short corner and allowing De Bruyne to whip in an exquisite delivery for Ake to nod in.

Nunez spurned another great chance when he shot wide of the far post after bursting clear, with City this time holding on to advance.