Fedor Chalov and Kirill Nababkin scored for CSKA to set Arsenal nerves jangling in the Russian capital, but Danny Welbeck and Aaron Ramsey both netted late on for the Premier League side as they won the quarter-final 6-3 on aggregate.
It was another night of comebacks in a crazy midweek in Europe, with Marseille and Red Bull Salzburg producing stirring performances to overturn first-leg deficits.
Atletico Madrid are also through, and remain the favourites, despite losing 1-0 on the night away to Sporting Lisbon.
Arsene Wenger was without Granit Xhaka and Henrikh Mkhitaryan in Moscow so Mohamed Elneny and Welbeck came in as the two changes to the team that won the first leg 4-1.
Clinging to the Europa League to rescue their season as they languish well out of the running for a top-four finish in the Premier League, the Gunners came close to suffering a humiliating defeat at the CSKA Arena.
The hosts, spurred on by a 29,000 crowd, went ahead six minutes before the interval when Chalov followed in to score after Petr Cech had saved low down from Nababkin.
CSKA hopes were raised further as Nababkin made it 2-0 in the 50th minute after Cech had beaten away Alexander Golovin's long-range strike.
But Arsenal ended any doubt with quarter of an hour left as Welbeck played a brilliant one-two with Elneny before finishing sweetly into the corner to reduce the deficit on the night and extend their lead in the tie.
Elneny then sent Ramsey -- scorer of a brace in the first leg -- away to score Arsenal's equaliser on the night in stoppage time.
"Maybe we were a bit surprised by the intensity of the game and we were not in the races in the first half. We were a bit on the ropes, but we had a good response," Wenger told BT Sport after Arsenal secured a first European semi-final appearance since 2009.
"It should be every year. It's never enough. You could see this week in Europe that you had a lot of turnarounds and you need to be completely focused, so let's be prepared and see who we play."
- More stunning comebacks -
After Roma's stunning comeback against Barcelona in the Champions League on Tuesday, and Juventus's heroic effort against Real Madrid on Wednesday, Marseille and Salzburg came up with stunning fightbacks of their own in the last eight of Europe's second-tier competition.
Marseille, the 1993 Champions League winners, needed to overturn a 1-0 first-leg deficit when they hosted RB Leipzig at the Velodrome.
The evening started badly for the French club as Bruma swept home for the visitors inside two minutes, leaving Marseille needing three goals to turn the tie around.
But they did that before the interval in front of a huge Velodrome crowd, via a Stefan Ilsanker own goal, Bouna Sarr and Florian Thauvin.
Jean-Kevin Augustin scored to swing the tie back Leipzig's way 10 minutes after the break, but Dimitri Payet made it 4-2 on the night in some style five minutes later.
With the Germans sending everyone forward for a corner in stoppage time, Marseille made sure of the victory as Hiroki Sakai netted on the counter-attack to complete a 5-3 aggregate win.
Salzburg lost 4-2 to Lazio in Rome last week but won 4-1 in the return in Austria, despite Ciro Immobile giving the Italians a second-half lead on the night.
The hosts proceeded to score four times in 20 minutes, through Munas Dabbur, Amadou Haidara, Hwang Hee-Chan and Stefan Lainer, to advance 6-5 on aggregate.
Meanwhile, Atletico held on in the rain in Lisbon to win 2-1 on aggregate against Sporting, despite losing on the night to a Fredy Montero header in the first half.
The draw for the semi-finals will take place on Friday.