Match ends, CSKA Moscow 2, Arsenal 2.
Arsenal reached the Europa League semi-finals with a 6-3 aggregate win over CSKA Moscow despite a nervy 2-2 draw in Russia.
Arsene Wenger's side were trailing 2-0 and under pressure when Danny Welbeck's second-half goal gave them breathing space.
The hosts, who led through Fedor Chalov and Kirill Nababkin, went close to drawing level on aggregate and leading on away goals as Petr Cech saved Aleksandr Golovin's free-kick and Sergei Ignashevich shot narrowly wide.
Arsenal, the leading scorers in the competition, did not have an effort on target in the first 70 minutes, and Laurent Koscielny wasted a glorious chance before Welbeck struck.
Aaron Ramsey's goal in stoppage time made certain of their progress into the last four alongside Atletico Madrid, Marseille and Salzburg.
Viktor Goncharenko's men had dreamed of an upset when Chalov reacted before Shkodran Mustafi to score the opener after Cech saved Nabakin's header.
Cech was at fault when he could only parry Golovin's strike from 25 yards and Nababkin reacted first to double the hosts' lead.
But Arsenal, who lost midfielder Jack Wilshere to injury, kept their nerve to enter the semi-final draw, which takes place in Nyon, Switzerland, at 11:00 BST on Friday.
Arsenal avoid Barcelona repeat
Arsenal's Europa League dream lives on - just - after a tense night in Moscow, and Wenger can still hope for his first European trophy with the Gunners.
His side are in their first European semi-final in nine years, despite threatening to join Barcelona in the history books for all the wrong reasons.
Wenger, who made seven changes for Sunday's 3-2 Premier League win over Southampton with this game in mind, brought his rested big names in Mesut Ozil, Ramsey and Wilshere back into the starting XI against CSKA.
Despite stressing he was fully aware of the "warning" provided by Roma after they overturned a 4-1 first-leg deficit to reach the Champions League semi-finals at the expense of a stunned Barcelona on Tuesday, his team almost suffered the same fate.
With CSKA leading and asking some severe questions of the visitors, it required Welbeck - who scored twice against Southampton after what Wenger described as a "dark" time in his career - to save the day.
He latched on to a wonderful Mohamed Elneny pass to finish calmly 15 minutes from time.
That goal knocked the stuffing out of an impressive CSKA, who recovered well from losing influential Russia midfielder Alan Dzagoev to injury in the first half.
Ramsey, who needed treatment to a badly cut foot, showed similar cool when one on one with Igor Akinfeev with the local time past midnight.
In his post-game press conference Wenger was presented with a Russian hat, like the ones given as gifts to the Arsenal fans in the away end by CSKA.
It was a cordial end to a night which had threatened to be altogether more unpleasant for the Gunners.
Man of the match - Mohamed Elneny (Arsenal)
Arsenal 'were surprised by the intensity' - what they said
Arsene Wenger on BT Sport: "Maybe we were a bit surprised by the intensity at the start. After that we came back.
"We were in trouble in the first half. In the first half the distances were too big. At 2-1 we looked good to get to 2-2 and we did.
"They scored the second, had a chance for the third. It was a good response from us after the break.
"After moving to a back five we were more stable and didn't concede as many chances. Their second was from distance, but in the box we didn't give anything away.
"We have players who can always score. Once we got to 2-1 it was a big blow for them and they didn't recover."
Arsenal through despite floodgates still open - the stats
- Arsenal have conceded 31 goals in all competitions in 2018, three more than any other Premier League side
- The Gunners reached their first European semi-final since 2008-09, when they did so in the Champions League
- Arsenal are the fifth English team to reach the semi-finals of the Europa League, after Fulham (2009-10), Liverpool (2009-10 and 2015-16), Chelsea (2012-13) and Man Utd (2016-17)
- CSKA have not won in eight European matches against English opposition (L6 D2)
- Aaron Ramsey has had a hand in eight goals in his past eight matches for Arsenal in all competitions (7 goals, 1 assist)
- Fedor Chalov (20 years and two days) became the youngest player to score a European goal against Arsenal since Eliaquim Mangala for Standard Liege in September 2009 (18 years and 215 days)
- Danny Welbeck's goal took him to double figures in all competitions this season for only the third time in his career (also 2011-12 and 2013-14)
- Welbeck scored in an away European match for the first time since October 2013, when he scored for Manchester United against Shakhtar Donetsk
- 25BistrovicSubstituted forNatchoat 71'minutes
- 10DzagoevSubstituted forCoelho Santosat 38'minutes
- 17GolovinBooked at 86mins
- 63ChalovSubstituted forMilanovat 79'minutes
- 11Coelho Santos
- 10WilshereSubstituted forChambersat 69'minutes
- 9LacazetteSubstituted forIwobiat 77'minutes
- Felix Zwayer
- Shots on Target
Second Half ends, CSKA Moscow 2, Arsenal 2.
Goal! CSKA Moscow 2, Arsenal 2. Aaron Ramsey (Arsenal) right footed shot from the centre of the box to the high centre of the goal. Assisted by Mohamed Elneny with a through ball following a fast break.
Sergei Ignashevich (CSKA Moscow) wins a free kick in the defensive half.
Foul by Nacho Monreal (Arsenal).
Corner, Arsenal. Conceded by Igor Akinfeev.
Attempt saved. Danny Welbeck (Arsenal) right footed shot from the right side of the box is saved in the top centre of the goal. Assisted by Aaron Ramsey.
Attempt blocked. Ahmed Musa (CSKA Moscow) right footed shot from outside the box is blocked. Assisted by Aleksei Berezutski.
Attempt missed. Alex Iwobi (Arsenal) left footed shot from the centre of the box misses to the right. Assisted by Mesut Özil with a through ball following a fast break.
Foul by Mohamed Elneny (Arsenal).
Ahmed Musa (CSKA Moscow) wins a free kick in the attacking half.
Aleksandr Golovin (CSKA Moscow) is shown the yellow card for a bad foul.
Foul by Aleksandr Golovin (CSKA Moscow).
Mohamed Elneny (Arsenal) wins a free kick in the attacking half.
Attempt saved. Calum Chambers (Arsenal) header from the centre of the box is saved in the centre of the goal. Assisted by Mesut Özil with a cross.
Corner, Arsenal. Conceded by Kirill Nababkin.
Vitinho (CSKA Moscow) wins a free kick on the right wing.
Foul by Laurent Koscielny (Arsenal).
Hand ball by Vitinho (CSKA Moscow).
Substitution, CSKA Moscow. Georgi Milanov replaces Fedor Chalov.