Arsenal survived a major scare to reach the Europa League last 16, beating Ostersunds 4-2 on aggregate despite a 2-1 loss on Thursday.
Arsene Wenger’s side conceded twice within 70 seconds in the first half at the Emirates Stadium and managed only a solitary Sead Kolasinac strike in return, although their 3-0 first-leg win was enough to see them through.
Borussia Dortmund battled past Atalanta in Bergamo to reach the next round, while Atletico Madrid and AC Milan picked up 1-0 wins to ease through comfortably.
There were tragic scenes in Bilbao, though, where a police officer died following clashes between fans ahead of the meeting between Athletic Bilbao and Spartak Moscow.
Complacent Arsenal survive, Celtic crash out
A Calum Chambers own goal and a fine strike from Ken Sema gave Ostersunds a 2-0 half-time lead over Arsenal, leaving the Gunners fearing a spectacular collapse.
Kolasinac’s strike just after the break eased some of the anxiety around the Emirates, but Arsene Wenger will have been concerned by the complacent performance, while Ostersunds celebrated a famous win.
Celtic took a 1-0 lead into their second leg with Zenit but offered meek resistance against the Russians, who ran out 3-0 winners to advance 3-1 on aggregate.
Branislav Ivanovic, Daler Kuzyaev and Aleksandr Kokorin got the goals for Roberto Mancini’s side.
Atletico advance, Bilbao win soured by violence
Atletico made light work of their second leg against FC Copenhagen, with Kevin Gameiro’s fine strike securing a 1-0 win on the night and a 5-1 triumph on aggregate.
Bilbao lost 2-1 to Spartak Moscow but still advanced 4-3, although their success was marred by violent clashes between fans before kick-off, which saw a police officer involved in attempts to restore order die after suffering a heart attack.
Basque rivals Real Sociedad crashed out with a 4-3 aggregate loss to Red Bull Salzburg, who won 2-1 in Austria thanks to Valon Berisha’s second-half penalty.
Meanwhile, a number of Marseille fans missed kick-off due to problems at Braga’s stadium, but the Ligue 1 side’s 1-0 defeat did not stop them going through 3-1 on aggregate.
Dortmund battle through, AC Milan make it look easy
Dortmund were staring at an away-goals defeat to Atalanta until Marcel Schmelzer struck seven minutes from time in Bergamo, thereby securing a 1-1 draw and 4-3 aggregate triumph.
There was an unsavoury incident involving Michy Batshuayi, though, who took to social media to accuse some home fans of racist abuse after the match.
Milan made light work of Ludogorets, with Fabio Borini’s effort sealing a 1-0 second-leg win and 4-0 aggregate success, ensuring a second Serie A presence in the last 16.