Dynamo Kiev registered their first Champions League win of the season as they thrashed nine-man Besiktas 6-0 to end the visitors' hopes.
The Turkish club fell short at the group stage for a sixth time in a stunning reverse against their already eliminated hosts.
Although Senol Gunes' side had not previously lost in league or cup action this season, four Dynamo goals and a red card for Andreas Beck killed the game before half-time.
Besiktas knew a win would definitely put them through - a draw may also have been enough depending on the result of the other group game involving Benfica and Napoli - but they were stunned by Artem Besedin's opener, Andriy Yarmolenko's penalty, Vitaliy Buyalskiy's quickfire third and Derlis Gonzalez's deflected fourth.
Besiktas' misery did not end there, though, with Vincent Aboubakar also sent off before Serhiy Sydorchuk and substitute Moraes added further strikes.
Dynamo scored with their first chance after nine minutes at a snowy Olympic Stadium.
Yarmolenko's incisive run down the right concluded with a delivery across the face of goal for Besedin to turn over the line.
Fabri held on as Yarmolenko shot low from 25 yards, before Besiktas' Aboubakar flashed a strike just wide of the far post after a smart turn in the area.
However, the game soon turned further against the Turks in controversial circumstances.
On the half-hour mark, Sydorchuk's pass tempted Beck into a challenge on Gonzalez that referee Craig Thomson adjudged to be both a foul inside the box and a red card.
Yarmolenko coolly dinked his penalty beyond Fabri to make it 2-0.
And things soon got worse for the visitors, with Sydorchuk forcing an error from Dusko Tosic, and Buyalskiy clipping a fine third into the net when Fabri failed to clear.
A fourth then arrived just seconds before the half-time whistle when Yarmolenko led a counter-attack and Gonzalez's effort deflected over the stranded goalkeeper.
Fabri saved comfortably from Serhiy Rybalka shortly after the restart, and made another stop when Buyalskiy looked to nudge the ball past him.
But Aboubakar then foolishly kicked a loose ball away to earn himself a second yellow card, and Besiktas' nine men were punished again.
When Oguzhan Ozyakup surrendered possession in his own area, Fabri parried the subsequent cross and Sydorchuk fired a low finish into the net.
Fabri saved again from Buyalskiy, but he was helpless to prevent Moraes from tucking away a rebound from Yarmolenko's shot with 13 minutes to go.
Moraes should have grabbed his second when he curled wide, and Rybalka was denied by the post as Dynamo's haul stayed at six.