Two goals from Maniche were enough for Porto to book a Champions League semi-final against Deportivo.
After six minutes, Maniche latched onto Deco’s clever pass to sidefoot home before Peguy Luyindula’s close-range finish brought Lyon level on the night.
It was scant reward for a glut of Lyon chances and a minute into the second-half, Deco again found Maniche and his volley killed off Lyon’s challenge.
Giovane Elber headed a consolation at the death after Edmilson was sent off.
But Lyon’s fans could not have asked much more from their team, who provided plenty of entertainment and could have caused an upset if their finishing had been more accurate.
The lively Luyindula was at the heart of much of the French side’s good work, and he thought he had opened the scoring inside four minutes but his header was ruled out for offside.
A minute later, he raced through on goal, released by Juninho, but he lost control at the vital moment and the Porto defence recovered.
After such a vibrant opening, Lyon could consider themselves unfortunate to fall behind when Maniche guided his shot into the top-right hand corner.
Lyon were undeterred, and within eight minutes, they had reduced the deficit.
Juninho’s pass found left-back Florent Malouda, who got to the byeline and crossed for Luyindula to toe-poke home.
The chances kept coming for Lyon.
Juninho twice had Vitor Baia scrambling across his goal to save dangerous long-range efforts before Mickael Essien blazed over from close range.
Baia again rescued Porto with a full-stretch save when Elber arrowed a shot towards the top right-hand corner.
In an entertaining game, Porto got in on the action on the half-hour mark when Lyon keeper Gregory Coupet dived to palm away Deco’s free-kick.
Coupet was called into action once more when Benni McCarthy unleashed a fierce shot and the Porto striker might have done better moments later when he fired just over.
On the stroke of half-time, Porto were screaming for a penalty when Carlos Alberto bore down on goal only to trip over Coupet but referee Anders Frisk turned down the appeals.
But a minute into the second-half, Porto finally killed off the game.
Deco flicked over a cross with the outside of his boot and Maniche was again on hand with a first-time volley which flew past Coupet.
Still the chances came and went for Lyon, Elber comprehensively beating the offside trap but sending his header woefully wide.
But with the hosts needing four goals to pull off an unlikely victory, they inevitably began to run out of steam.
Their task went from improbable to nigh on impossible when Edmilson’s rash tug brought out a second yellow card 15 minutes from time.
With an eye on the semi-finals, Porto boss Jose Mourinho withdrew Deco and with his departure, Porto lost their momentum.
And though Elber’s 90th-minute bullet header was just reward for Lyon’s efforts, it was merely a consolation as Porto cruised through.
Hadn't seen these two matches before. Tnx a bunch.
ʀᴇᴀʟʟʏ ғᴀɴᴛᴀsᴛɪᴄ ɪғ ɪ ʜᴀᴠᴇ ᴀ ʙғ ᴊᴜsᴛ ғᴀʟʟ ᴅᴏᴡɴ ᴡɪᴛʜ……….?????????????