With the sides tied 1-1 after the first leg in February, Dries Mertens set the tone for an eventful first half as he struck the post after 90 seconds – but it was Barcelona who made the breakthrough when Clement Lenglet headed in Ivan Rakitic’s corner after 10 minutes.
Lionel Messi doubled his side’s advantage in style as he wriggled his way past three defenders, before bending a shot between another two Napoli players and into the far side of David Ospina’s goal.
The Barcelona captain thought he had further added to his tally of 115 Champions League goals in 142 games just seven minutes later, but a lengthy video assistant referee review deemed he had handled the ball in controlling Frenkie de Jong’s pass.
Another VAR review then awarded Barcelona a penalty in first-half injury time after Kalidou Koulibaly felled Messi – and Luis Suarez stepped up to net his 25th Champions League goal.It was Napoli who had the final say at the end of an incident-filled first half, however, as Rakitic conceded a penalty for a foul on Mertens and Lorenzo Insigne converted to make it 3-1 at the interval.
In a significantly quieter second period, Insigne’s header early in the half failed to test Marc-Andre ter Stegen as Napoli chased a lifeline, while Kostas Manolas was at full stretch to deny Suarez the chance to put Barcelona out of sight.
Napoli substitute Arkadiusz Milik was on the pitch for less than two minutes when he headed past Ter Stegen with time running out for the visitors, but the Poland striker’s goal was ruled out for offside.
German champions Bayern Munich await Barca in the last eight after beating Chelsea 4-1 on Saturday to complete a 7-1 aggregate victory.