The Gunners made the early running and took a deserved lead though Chuba Akpom on sixteen minutes who tapped in from 6-yards after superb work from Hector Bellerin down the right flank. Arsenal were far more composed on the ball with the Blues looking a little tentative and nervous in defence.
But Arsenal wasted several chances to extend their lead and a 1-0 advantage did not reflect their dominance.
After the break, Chelsea came out looking like a different side, with captain Lewis Baker dictating the game from midfield. Chelsea won a penalty on fifty-two minutes, saved brilliantly by keeper Iliev but Islam Feruz stuck in the rebound. Minutes later, Baker's speculative shot from twenty-five yards crept under the keeper and Jeremie Boga slid in a cool finish to make it 3-1 after sixty-five minutes.
Arsenal looked shell-shocked and seemed destined to head out the competition, only for two superb late goals from Akpom and Serge Gnabry to take the game to extra-time.
With both sides looking tired after an intense ninety-minutes, they found it difficult to create any clear-cut chances. It took a piece of magic from Chelsea's John Swift to beat his man and slide in Baker for a tap in to take Chelsea into Monday's final.
Aston Villa will take them on in Monday's all-English final after beating Sporting Lisbon 3-1.
Graham Burke gave Villa the lead on 52 minutes from the penalty spot but substitute Luka Stojanovic equalised with a fine header that flew past Brad Watkins 16 minutes later.
The game went into extra-time and Jack Grealish who gave Villa the lead with a clever finish after fine work from Graham Burke. Captain Samir Carruthers added a third to secure a place in the final.