Barcelona stormed the Europa League round of 16 with a clinical 4-2 win at Napoli in the second leg played in Naples on Thursday night.
The Blaugrana were held to a 1-1 draw at home last week, but were a different animal on the night as they took an early 2-0 lead through Jordi Alba and Frenkie de Jong.
Lorenzo Insigne reduced the arrears from the penalty spot, but Gerrard Pique extended the visitors' lead just before the break.
Pierre-Emerick Aubameyang then wrapped up the win with their fourth, expertly finishing a flowing team move to give them a 5-2 aggregate win.
In Glasgow, Rangers held on to qualify as they drew 2-2 with Borussia Dortmund in a pulsating match at Ibrox.
The Scottish giants won the first leg 4-2 in Germany and came out to protect their advantage.
It was not surprising though when they took the lead through James Tavernier's penalty, only for Jude Bellingham and Donyell Malen to score and turn the game in the visitors' favour.
Tavernier then equalised late on to ensure they booked their place in the Round of 16 for the third season in a row.
Elsewhere, Lazio failed to make it to the next round after a 2-2 draw at home against FC Porto.
The hosts started brightly and had two Ciro Immobile goals ruled out for offside on either side that stood, before the Portuguese side equalised from the spot through Mehdi Taremi.
Taremi then turned provider to set up Mateus Uribe for a well-taken second, but Danilo Cataldi ensured Lazio did not lose on the night when he tapped in an Immobile shot late on.
Here are all the night's results;
- Braga 2-0 Sheriff (agg: 2-2, Braga win 3-2 on pens)
- Rangers 2-2 Dortmund (agg: 6-4)
- Betis 0-0 Zenit (agg: 3-2)
- Napoli 2-4 Barcelona (agg: 3-5)
- Lazio 2-2 Porto (agg: 3-4)
- Real Sociedad 1-3 Leipzig (agg: 3-5)
- Olympiacos 0-3 Atalanta (agg: 1-5)
- Dinamo Zagreb 1-0 Sevilla (agg: 2-3)