Leo Berdeu contributed 15 points for Lyon including a try, while Yanis Charcosset also touched down.
Wasps scored two tries of their own courtesy of Dan Robson and Jimmy Gopperth, who also kicked eight points.
This semi-final may have been played in 30-degree heat, but it did not stop either side from playing the game at a high pace.
Lyon gave Wasps a warning within the first five minutes with a counter-attack which went from one 22 to the other.
Wasps held out on that occasion and had the better of the first half with their set-piece earning them field position.
It took 24 minutes for either side to get on the scoreboard.
A tremendous 50/22 from Jacob Umaga gave Wasps an attacking line-out just five metres out from the Lyon try-line.
With Lyon’s forwards tied into the maul Robson succeeded in sneaking over from short range.
Lyon finally turned pressure into points in the 35th minute with a successful penalty from 40 metres out on an angle from Berdeu.
Wasps took an 8-3 lead into half-time with Gopperth knocking over three points from the kicking tee.
The visitors started the second half like a house on fire with Tom Willis hitting a tremendous angle to charge into the Lyon 22. They lay siege to the Lyon line, but the defence remained intact.
Lyon hit back with arguably the best try scored in this season’s Challenge Cup.
Former New Zealand centre Charlie Ngatai raced clear from deep inside his own half with the ball spread wide to both Baptiste Couilloud and Toby Arnold, who was brought down just outside the Wasps 22.
With the Wasps defence at sixes and sevens Guillaume Marchand’s pass put Berdeu over for a stunning try.
Berdeu converted his own try to push Lyon ahead, but Wasps regained the lead from Gopperth’s boot four minutes later.
But Lyon’s pack had the bit between their teeth with their forwards getting over the gainline with ease.
Former Saracens lock Joel Kpoku charged towards the line, with replacement hooker Charcosset eventually powering his way over from short range.
After missing two penalties Berdeu made it a two-score game with a successful penalty.
Wasps desperately tried to force their way back into the game and Dan Frost had a try disallowed after the television match official spotted Francois Hougaard knocking the ball forward in the lead-up.
Wasps set up a grandstand finish when Gopperth scored courtesy of a well-worked driving lineout.
The New Zealander kicked the conversion to make it 20-18 with four minutes remaining but it was a case of too little too late for Wasps.
Additional reporting from PA