Liverpool managed to make a first-half strike from Mohamed Salah stand, despite some profligate finishing, behind some last-minute heroics from Alisson.
Salah 34′ (Milner)
Back and forth opening
Jürgen Klopp brought back Trent Alexander-Arnold, Jordan Henderson, and Sadio Mané after absences at the weekend. With Fabinho, Naby Keïta, and Xherdan Shaqiri making way.
It was far from a cautious affair from the off, as both sides started with real intent.
Liverpool had a golden chance to take the lead just six minutes in. Andrew Robertson played in a deft cross for Mohamed Salah following a Liverpool break. The Egyptian might have been better off hitting the effort first time, as his touch slid away from him and into the grateful arms of David Ospina.
Less than a minute later, Napoli had their own sight of goal. Dries Mertens cut the ball back for Marek Hamsik, who blazed narrowly over Alisson’s bar.
The Reds did manage to put the ball in the net on 21 minutes, but Mané’s finish from an Alexander-Arnold cross was immediately ruled out for offside.
Liverpool continued to target Napoli down their left, with high pressure from Alexander-Arnold playing Salah in on 32 minutes. His cutback failed to find Mané through a pair of Napoli defenders.
It was that left side that yielded the opener just minutes later, however. James Milner played a ball into the feet of Salah, who trapped and rolled Mário Rui in one motion.
A quick drop of the shoulder created a yard against Kalidou Koulibaly, and Salah made no mistake. He slotted a right-footed shot between the legs of Ospina and into the far corner.
A wasteful second half
Neither side changed personnel at the half, and it was the Reds who came out firing.
Salah rode the challenge of Allan after some solid link-up play on the edge of the box before clipping a cross into Georginio Wijnaldum. The Dutchman tried an ambitious outside-of-the-boot effort that skewed well wide.
The Reds were in again just minutes later as a Henderson press allowed Roberto Firmino to slide a ball in for Salah. The Egyptian tried to beat Ospina at his near post, but the effort flew harmlessly into the side netting.
Henderson then tried his own luck from distance, with his sweetly struck volley drawing a good save down to Ospina’s right.
On 61 minutes, Carlo Ancelotti made his first change, bringing on Piotr Zielinski for Fabian Ruiz.
Just moments after the change, Milner curled just wide following a slick Liverpool break down the left.
The Italians made another change, with Arkadiusz Milik replacing Mertens in attack, followed with a third and final change a few minutes later, as Faouzi Ghoulam replaced Rui at left-back.
The changes nearly made a difference, as Milik did well to latch onto a ball in behind from Ghoulam before squaring for Zielinski, who skied his shot well over.
Salah then forced a stunning save from Ospina, who recovered after a failed attempt to take the ball off the Egyptian’s toes and managed to get a palm to his clever chip attempt.
The Colombian was in action yet again to deny Mané on 76 minutes. The Senegalese did well to get a foot to Robertson’s cross but couldn’t squeeze his low shot home.
José Callejon spurned a golden opportunity for the visitors, as Lorenzo Insigne’s low ball eluded Robertson’s poor attempt to clear and found him all alone at the far post, only to see the ball skewed high and wide.
The tense, final minutes
Klopp made his first change of the evening on 79 minutes, bringing on Keïta for Firmino.
Milner made way for Fabinho on 84 minutes to help the Reds see the result out.
Wijnaldum had a chance to double the advantage on 85 minutes, but he skewed his effort from Salah’s pull-back.
The result appeared to be all wrapped up when Salah squared for Mané just six yards out after a ball over-the-top from Wijnaldum, but he somehow contrived to miss the net and leave the door open.
The final sub was likely not what Klopp had envisioned. Alexander-Arnold hobbled off in the final minutes of regulation and was replaced by Dejan Lovren.
The defining moment of injury time came from Alisson, who made a stunning point-blank save on Milik after a floated cross bounced favorably for the Polish striker.
Mané then spurned one final attempt to get on the scoresheet, missing the goal completely after Salah played him in 1v1 with Ospina.
It simply was not the Senegalese winger’s night when it came to final product, despite being highly influential overall.
With the win, the Reds leapfrog their visitors into second place in Group C, claiming their ticket to the Champions League Knockout rounds for the second successive season.
Alisson, Robertson, van Dijk, Matip, Alexander-Arnold (Lovren 89′), Milner (Fabinho 84′), Henderson, Wijnaldum, Mané, Firmino (Keita 79′), Salah
Subs: Mignolet, Shaqiri, Sturridge, Origi
Ospina, Rui (Ghoulam 70′), Koulibaly, Albiol, Maksimovic, Ruiz (Zielinski 62′), Hamsik, Allan, Callejon, Mertens (Milik 67′), Insigne
Subs: Karnezis, Ounas, Hysaj, Diawara