Edinson Cavani struck an 86th-minute winner to help Paris Saint-Germain beat a spirited APOEL side 1-0 and stay top of Group F in the Champions League tonight.
The Cypriot hosts produced a solid defensive display and looked on course to secure a point at the bare minimum after regularly thwarting the visitors' forward line.
However, Cavani pounced with four minutes remaining to snatch all three points for Laurent Blanc's side, who stay one point ahead of Barcelona in the race for first place in the group.
Below, Sports Mole sorts the heroes from the villains on a dramatic night in Cyprus.
APOEL
Goal
Urko Pardo: Had very little to do by virtue of PSG's creative issues from midfield, but did well to tip a Cavani header over the bar early in the second half. (6/10)
Defence
Marios Antoniades: The left-back was beaten a little too easily by Lucas Moura in the build-up to PSG's one and only first-half chance. Went off injured on 41 minutes. (5/10)
Carlao: Did not deserve to be on the losing side after producing an outstanding defensive performance to help keep the visitors at bay. (8/10)
Joao Guilherme: Along with centre-back partner Carlao, the Brazilian was superb for the most part, but was perhaps slightly suspect in the concession of the goal. (6/10)
Mario Sergio: Skinned by left-back Maxwell once or twice but did his duties well and looked menacing going forward at times. (6/10)
Midfield
Vinicius: Like Nuno Morais, proved an adequate sentry and protected his defence well throughout the encounter, regularly thwarting Marco Verratti and Thiago Motta. (6/10)
Nuno Morais: The skipper sat in front of his back four well and broke up plenty of attacks throughout his 79 minutes on the field. Solid. (7/10)
Gustavo Manduca: Would have had an assist had Tiago Gomes not failed to convert his second-half cross. Led APOEL's counter-attacks well. (6/10)
Tiago Gomes: Should have put APOEL one up by missing a header that he now undoubtedly regrets - and might for some time. Decent overall performance, though. (6/10)
Georgios Efrem: Very impressive first-half performance and looked to be a thorn in PSG's side, but faded in the second half. Still, he looked a cut above his teammates at times. (7/10)
Attack
Cillian Sheridan: Plenty of defensive work due to APOEL's tactics, but lacked the cutting edge in the final third. Missed a good chance early on. (5/10)
Substitutes
John Arne Riise: Replaced Antoniades but majorly struggled to contain the lively Lucas Moura at times throughout the second half. Offered nothing going forward. (5/10)
Rafik Djebbour: Swapped for Sheridan but did not look much more of an outlet up front than his Irish counterpart. (4/10)
Tomas De Vincenti: The striker replaced midfielder Nuno Morais, but his introduction affected the balance of play and seldom saw the ball. (4/10)
PARIS SAINT-GERMAIN
Goal
Salvatore Sirigu: One or two hairy moments that he can thank his teammates - namely Luiz - for bailing him out on. (5/10)
Defence
Thiago Silva: First game back after an 11-match absence through injury and displayed a few signs of rustiness. (5/10)
Maxwell: Very quiet game defensively but produced an admirable attacking performance from left-back. (6/10)
Gregory van der Wiel: Struggled to contain the lively Efrem at times on the right-hand side of defence. Decent attacking display. (5/10)
David Luiz: Produced a goal-line clearance in what proved a huge moment in the game. Perhaps guilty of dithering in possession at times, though. (6/10)
Midfield
Marco Verratti: Better than fellow midfielder Thiago Motta but less effective than Blaise Matuidi. Also played quite a few poor passes. (5/10)
Blaise Matuidi: Played the box-to-box role and looked a match for APOEL's imposing centre-halves. Good overall performance. (6/10)
Thiago Motta: Should have abandoned his pursuit of the perfect over-the-top ball after it failed to work the first 25 times. Lost possession regularly. (4/10)
Attack
Lucas Moura: Excellent first-half performance from the tricky winger but could only show his talent in patches from that point on. (6/10)
Javier Pastore: Woeful and guilty of playing a host of hospital passes that led to APOEL counter-attacks. The injured Zlatan Ibrahimovic can't come back soon enough. (4/10)
Edinson Cavani: Proved the match winner in an otherwise very ordinary performance from the highly-rated striker. Far from his world-class billing tonight. (6/10)
Substitutes
Yohan Cabaye: Blanc had hoped that he would provide the creative spark necessary to unlock the stubborn defence but never looked that way for the Frenchman. (4/10)
Jean-Christophe Bahebeck: Made a host of surging runs through APOEL's midfield and overall looked an improvement on Verratti. (6/10)
Clement Chantome: Brought on to sure things up after PSG moved ahead but had little to do with the little time remaining. (6/10)