Rangers, Sevilla and Porto held off comebacks to progress while Barcelona were rampant on the road in the play-off deciders.
Article top media content
Resilience was the name of the game as Rangers, Sevilla and Porto made it through to the last 16 while a flurry of goals away from home did the trick for Barcelona, Atalanta and Leipzig.
UEFA.com rounds up a thrilling night of action from the UEFA Europa League knockout round play-off second legs.
The Europa League specialists progressed despite defeat in the Croatian capital. The hosts had plenty to do with a 3-1 deficit to overturn but other than Josip Mišić's deflected shot, which had Yassine Bounou scrambling as it evaded the far post, they barely troubled Sevilla before the break.
The visitors held sway after half-time until Marcos Acuña's handball gave Mislav Oršić the chance to pull one back from the penalty spot. Lucas Ocampos and Rafa Mir should have made the tie safe for Julen Lopetegui's side but Sevilla remained resolute to the end.
Key stat: Sevilla failed to score for only the third time in their last 19 Europa League matches.
Atalanta reached the Europa League round of 16 for the first time with a dominant display in Greece. The visitors travelled to Piraeus with a slender lead and, after several near misses, extended it five minutes before half-time as Joakim Mæhle forced his way through to prod in.
With Olympiacos forced to push forward, Ruslan Malinovskyi struck twice in three minutes – the second an unstoppable long-range effort into the top corner – to settle the contest in style.
Key stat: This was Atalanta's seventh away European game in the spring and only their second win (D1 L4).
The visitors took the initiative from the off and were rewarded with a first-half penalty; Mat Ryan saved from André Silva but Willi Orbán tidied up from the rebound.
All seemed lost for the hosts after André Silva powered in a second, but Martín Zubimendi's finish gave La Real hope that was only extinguished by a cool spot kick from Emil Forsberg at the death.
Key stat: Leipzig have 13 goals in four European away games this season.
Porto struck in either half to reach the round of 16. Lazio started strongly and Ciro Immobile had two goals chalked out for offside either side of the one that did stand, when he ran on to Sergej Milinković-Savić's interception to score, but Mehdi Taremi levelled by converting from the spot after being tripped by Milinković-Savić.
Porto's passage was secured when Taremi's brilliant assist set up Mateus Uribe for a well-taken second, although Danilo Cataldi ensured Lazio did not lose on the night when he tapped in after Immobile hit the post deep into added time.
Key stat: Ciro Immobile's 20th UEFA goal for Lazio brought him level with club record-holder Simone Inzaghi.
The winners will take their place in Friday's round of 16 draw, where they will be unseeded.
The seeded teams are Crvena zvezda, Eintracht Frankfurt, Galatasaray, Leverkusen, Lyon, Monaco, Spartak Moskva and West Ham.
Barcelona breezed through to the round of 16 with a clinical display at Napoli. Jordi Alba got the first, finishing a rapid breakaway just 11 seconds after the home side had taken a corner, and Frenkie de Jong added a superb second before Lorenzo Insigne reduced the arrears from the penalty spot.
Gerard Piqué calmly dispatched a well-taken third before half-time and Pierre-Emerick Aubameyang made it four, expertly finishing a flowing team move to leave Matteo Politano's late goal just a consolation.
Key stat: De Jong's goal was his first in UEFA club competition on his 47th appearance.
There were five goals in the first half of the first leg, but the return proved considerably tighter with clear chances at a premium in the opening 45 minutes.
Guido Rodríguez nodded against the post from a Betis corner after the break, but the home side were forced to withstand increasing pressure from the visitors in the final 15 minutes, and it was not until Aleksandr Erokhin headed over from the last action that they could relax.
Key stat: Betis have drawn all three of their home games against Russian clubs.
After their thrilling 4-2 win in Germany last week, Rangers qualified following a pulsating 90 minutes at Ibrox as they rallied to draw with Dortmund. James Tavernier's penalty gave them the lead but the visitors responded brilliantly, turning the game around through Jude Bellingham and Donyell Malen.
All the momentum seemed to be with the away side but a much-improved showing from the hosts in the second half ensured they drew level through Tavernier and Marco Rose's men rarely threatened thereafter.
Key stat: Rangers have only lost once in ten meetings with Dortmund in UEFA club competition and are into the round of 16 for the third season in a row.
Sheriff lost their first-leg advantage then a penalty shoot-out as their landmark European campaign ended. Braga came roaring out the blocks with Ricardo Horta at the heart of their drive to eliminate their first-leg deficit. The Braga skipper set up Iuri Medeiros' tap-in before finishing off a free-flowing team move late in the first half.
The Moldovan side dug in and eventually forced the shoot-out but Gustavo Dulanto, Bruno and Stjepan Radeljić failed from their first three attempts and, despite two saves by Giorgos Athanasiadis at match point, Francisco Moura sent the Portuguese side through.
Key stat: Ricardo Horta's goal was Braga's 100th in the Europa League and the captain's ninth in their last nine home games.