With the score 3-3 on aggregate, five players from either side were given the task of deciding the contest.
However with none of the 10 missing, the shoot-out went into sudden death. Besiktas's Necip Uysal and Lyon's Mouctar Diakhaby made it 6-6.
But Dusko Tosic failed to convert his kick when Lyon keeper Anthony Lopes saved the shot. That gave Christophe Jallet the chance to send his team into the last four. But his kick sailed over the bar.
Thus reprieved Besiktas failed to capitalise. Matej Mitrovic's shot was saved and that miss gave Lyon a second chance to take the tie. Maxime Gonalons slotted home to the delight of his teammates and the despair of the hosts.
Lyon midfielder Corentin Tolisso told beIN Sports: "It was a stressful night especially during the shootout. But credit to our keeper for saving two shots at the end. Now we have to try and go all the way to the final and win the trophy. We came to a difficult place and we've come away as winners. We can be proud of what we've achieved."
Lyon will be joined in Friday's semi-final draw by Manchester United who beat Anderlect 2-1 at Old Trafford as well as Celta Vigo and Ajax.