These two clubs began the night as the only members of Ligue 1’s current top seven still in the competition, so both knew they would be favourites to lift the trophy if they progressed.
Lens - managed by former Lyon boss Pierre Sage - started brightly but the hosts grew into the game, with Moussa Niakhate poking wide from a corner before captain Corentin Tolisso’s deflected effort squirmed past the post.
It was the visitors who struck first, though, when Saud Abdulhamid advanced down the right in the 23rd minute and unleashed a fierce effort that Remy Descamps could only push into the path of Florian Thauvin, who tucked into an empty net for his eighth goal of the season.
Lens have now scored in 10 successive away games, and Odsonne Edouard should have doubled the lead when he found space in the box and got a shot away, but Descamps stuck out a leg to save.
Les Sang et Or continued to probe, and the second goal arrived in first-half stoppage time when Abdallah Sima ran onto Thauvin’s through ball, before firing a rocket inside the near post to take his tally to four in this competition this season.
Lyon needed a fast start to the second half, and Roman Yaremchuk rattled the crossbar just after the hour mark.
But the striker buried his next chance. Substitute Remi Himbert sent a delicious inswinging cross towards the penalty spot and the Olympiacos loanee rose to nod home his first goal for Les Gones.
Suddenly the hosts were in the ascendancy, and poured forward in search of an equaliser, but Sage’s side looked to have weathered the storm.
However, in the fourth minute of stoppage time, Yaremchuk stole in front of Robin Risser and nodded into the path of Himbert, who coolly dinked into the empty net.
Risser redeemed himself as he saved from Niakhate in the shootout, before Thauvin dispatched the winning penalty for the visitors.
Despite almost letting victory slip through their fingers, Lens can now look forward to a home semi-final against Toulouse, while Lyon are left to rue the twin blows of tasting their third successive defeat and seeing their nine-match winning run at Groupama Stadium brought to an end.
Flashscore Man of the Match: Florian Thauvin (Lens)
