APOEL, the first Cypriot side to reach the last 16, showed no attacking intent — they did not have a shot until the 88th minute — and looked for much of the match like they might hang on.
But Lacazette struck after 58 minutes to give some relief to Lyon, whose poor domestic form has seen them slip 11 points adrift of leaders PSG.
For all Lyon’s possession they were struggling to create chances, and their first real opportunity came after 24 minutes when, following good work from Lisandro Lopez, the ball broke in the area to Anthony Reveillere whose shot was blocked.
Lisandro then saw his low shot held by Dionissis Chiotis diving low to his right, before Lacazette cut in from the right but hammered over the bar.
Five minutes before the break Lyon had their best effort of the half. Ederson’s pass was cut out by Ivan Trickovski but the ball broke to Lacazette, whose strike from the edge of the box was turned over by Chiotis.
Barely two minutes into the second period, Michel Bastos produced a lovely pass for Ederson, who rounded the keeper and slid the ball towards goal only for Paulo Jorge to slide in and clear at the very last moment.
Lyon finally took the lead after 58 minutes when Cris played the ball down the left for Lacazette, who cut inside before unleashing a shot which deflected off Jorge and looped over Chiotis.
With two minutes to play, APOEL finally had their first attempt as Gustavo Manduca, on as a late substitute, cut in from the right and fired at goal but Hugo Lloris turned the ball over.
LYON: Lloris, Reveillere, Cris, Bakary Kone, Cissokho, Kallstrom, Gonalons, Lacazette (Briand 60), Ederson (Gourcuff 71), Michel Bastos, Lopez.
APOEL NICOSIA: Chiotis, Poursaitides, Kaka, Paulo Jorge, Boaventura, Morais, Pinto, Charalambidis (Manduca 81), Helder Sousa (Marcinho 72), Trickovski, Almeida (Solari 67).
Ref: Paolo Tagliavento (Italy).