Robert Lewandowski scored a crucial late goal as a nervy Barcelona edged into the Champions League quarter-finals with a 3-1 win over Napoli.
Lewandowski’s 83rd-minute effort finally finished off the Italians at the Lluis Companys Olympic Stadium with Barca progressing 4-2 on aggregate.
Barca had stormed ahead with goals in quick succession from Fermin Lopez and Joao Cancelo but Napoli hit back through Amir Rrahmani and were threatening an equaliser before Lewandowski had the last word.
Napoli striker Victor Osimhen had the first chance of what proved an open game but failed to trouble Marc-Andre Ter Stegen before Lopez dragged a shot wide at the other end.
That proved a sighter for Lopez, who opened the scoring after 15 minutes following a flowing Barca move.
Cancelo was involved on the left before Raphinha reached the byline and pulled the ball back invitingly in front of goal. Lewandowski cleverly left the ball for the inrushing Lopez and he sidefooted firmly home.
Barca doubled their lead just two minutes later after Lamine Yamal controlled a high ball on the edge of his own box and launched a rapid counter-attack.
He broke deep into Napoli territory and then released Raphinha, who cut inside on to his right foot and thumped a shot against the post. As the ball rebounded, Cancelo was on hand to tuck away.
It seemed the Catalan giants were cruising but Napoli served warning they were not out of the contest as Osimhen tested Ter Stegen, although he was given offside.
The Italian side grabbed a goal back after 30 minutes as Matteo Politano pulled the ball back across the area and Rrahmani met it with a nice left-foot finish.
They then threatened an equaliser before the break as Giovanni Di Lorenzo got forward but Ter Stegen tipped over his dipping header.
Napoli pushed again after the break and wanted a penalty after Osimhen went down following a challenge from Pau Cubarsi but nothing was given.
Barca were forced to defend deep and struggled to get out of their half until Raphinha forced Alex Meret to save from a free-kick after 67 minutes.
Yamal then turned the ball into the net after a Lewandowski header was saved but it was ruled out for offside.
Ilkay Gundogan had a shot on the turn saved by Meret as Barca began to regain control but they were almost caught out when Jesper Lindstrom planted a header narrowly wide for Napoli.
Lewandowski claimed Barca’s decisive third goal seven minutes from time with a close-range finish after neat interplay between Gundogan and Sergi Roberto.
Napoli were not quite done as substitute Mathias Olivera rattled the woodwork and Khvicha Kvaratskhelia sent a ferocious drive inches wide, but Barca had done enough.