A stoppage-time goal from Roberto Firmino gave Liverpool a 3-2 win over Paris Saint-Germain on a dramatic Champions League night at Anfield.

Liverpool had seemed to be coasting towards victory when Daniel Sturridge's header and a James Milner penalty gave them a 2-0 lead, only for Thomas Meunier to pull one back before the break and Kylian Mbappe to level with seven minutes left.

But substitute Firmino was the hero for Liverpool in the second minute of added time, lashing an angled strike into the corner.

PSG star Neymar caused early problems when, with three minutes gone, he skipped away from his markers but overhit a pass to Angel Di Maria.

Three minutes later, Liverpool forced the first save when Milner's cross fell to Virgil van Dijk, whose strike was pushed over the bar by Alphonse Areola.

Jurgen Klopp's side were upping the pace, and with eight minutes on the clock Milner's deflected shot fizzed behind before a Sadio Mane cross was too close to Areola.

Neymar attempted to find Kylian Mbappe inside the area as PSG tried to exert pressure, but they were back on the defensive when, from another Liverpool corner, Joe Gomez shot over.

Thiago Silva rescued Areola when it seemed Mane would bear down on him, cutting out a Milner pass, and PSG then came forward only for Di Maria to scuff a tame shot from 25 yards.

Mane wove his way into space on the edge of the area but blasted well wide, and at the other end Van Dijk went into the book for fouling Mbappe as the France star tried to get on to a loose ball.

But on the half-hour, Liverpool were in front as Andrew Robinson's superb cross from the left was headed home by Sturridge from the edge of the six-yard box.

It was almost 2-0 a minute later, PSG scrambling the ball away after excellent work from Mohamed Salah had created havoc, but Mbappe then missed a chance to level when he lifted over from inside the box.

And it was two for Liverpool with 36 minutes gone when, after Juan Bernat's rash challenge on Giroginio Wijnaldum, Milner fired a low penalty beyond Areola to put Liverpool in control.

That control lasted only four minutes, however, as Thomas Meunier finished neatly after the ball had fallen to him off Robinson to put PSG right back in the match.

Meunier went into the book for a foul on Mane shortly before the break, but things got off to a tepid start after it with neither side mustering much threat in the opening minutes.

Sturridge tried to change that, attempting to tee up Salah on the edge of the area only for Silva to intercept, and then Mbappe made a good run down the right for PSG only for the threat to fizzle out.

Shortly before the hour, Liverpool thought they had made it 3-1 when Salah tapped home, but the goal was disallowed for Sturridge's sliding challenge on goalkeeper Areola in the build-up.

Trent Alexander-Arnold raced down the right unmarked, but Sturridge's header was too close to Areola, and Sturridge then tried a curling finish from the edge of the area but sent it arcing over.

Silva was in the right place to clear as Alexander-Arnold crossed, and with 20 minutes remaining Klopp made a change, with Firmino coming on in place of scorer Sturridge.

Salah shot narrowly over before PSG made a change, Di Maria replaced by Eric Maxim Choupo-Moting, and then Mane steered a low effort across goal from an acute angle.

And with seven minutes remaining the French champions found a leveller, Salah losing possession in midfield and Neymar finding Mbappe, who made no mistake.

Salah was replaced by Xherdan Shaqiri before PSG threatened again when Julian Draxler made space on the edge of the box but saw his strike blocked.

But Firmino had the final word, Klopp winding down the clock by bringing on Fabinho for his debut, Mane making way for him with seconds to go.