AS Monaco needed only a draw against Zenit St Petersburg to reach the knockout stages of the Champions League as the sides met in the final game of Group C at the Stade Louis II.
The French side were able to gain qualification through second-half goals from defenders Aymen Abdennour and Fabinho, which handed Leonardo Jardim's men a 2-0 win that was also good enough to secure a top-spot finish.
Here, Sports Mole rates all of the players involved in the 90 minutes of action in France.
AS MONACO
Goal
Danijel Subasic: Had very little to do despite Zenit's dominance in the first period. Good stop to deny Nicolas Lombaerts, though. (7/10)
Defence
Fabinho: Excellent performance from the full-back. Slowly grew into the game and played his part by capping off the victory with a standout finish having shown great determination to get forward. (8/10)
Wallace: Fine display from the centre-back given the lack of time he's spent in the position for AS. Kept Hulk and Jose Rondon quiet all evening and partnered well with Abdennour. (8/10)
Aymen Abdennour: Great display of leadership from the cultured defender. Worked well with Wallace and showed impressive anticipation to head home the opening goal. (8/10)
Andrea Raggi: Commanding display from the defender and got forward well throughout the contest. Great one-two with Anthony Martial at one point. (7/10)
Midfield
Nabil Dirar: Probably one of the more creative sparks in the Monaco midfield. Didn't offer too much in the first period, but became more enterprising in the second half. (7/10)
Jeremy Toulalan: Saw his troops through with a dogged display and made some good forward runs in the first half. Didn't have too much impact going forward, but did lots of defensive work and broke up the play to good effect. (7/10)
Tiemoue Bakayoko: The least effective player in the hosts' midfield. Made some good tackles to establish moves, although he eventually faded in the game. (6/10)
Joao Moutinho: Not the best performance from Moutinho and Monaco missed his forward drive in the earlier stages. Showed good feet to win the free kick that resulted in the goal, however. (6/10)
Yannick Ferreira-Carrasco: Arguably the best player on the pitch at the Stade Louis II. Tormented defenders all night and produced a telling ball to help put his team into the lead. (8/10)
Attack
Dimitar Berbatov: Quiet night for the Bulgarian forward and he was eventually subbed in the second half. Did well when bringing the ball out of the air only to find a lack of support around him. (6/10)
Substitutes
Anthony Martial: Added some pace to the team when he replaced Berbatov. His first few touches almost contributed to a goal. (7/10)
Lucas Ocampos: Introduced very late in the game to try to run down the clock. Had barely any part to play in the contest. (6/10)
Bernardo Silva: Again, brought into play far too late to be able to have any kind of influence on the way the game turned out. (6/10)
ZENIT
Goal
Yuri Lodygin: Not the best game for the Zenit keeper. May have gambled to come and collect for the opener and also made a number of rash decisions when coming off his line in the second half. (6/10)
Defence
Igor Smolnikov: Got forward well, and almost scored with a header from a corner. Booked for a poor challenge, though. (6/10)
Domenico Criscito: One of the better Zenit performers. Worked the left flank well and got forward to turn in a number of crosses for Hulk and Rondon. (7/10)
Nicolas Lombaerts: Quiet night for the otherwise vocal centre-back. Was booked and might have helped organise his defence better for the opening goal. (6/10)
Ezequiel Garay: Usually provides more presence at the back and looks to set up attacks with passes from defence. Failed to cause any trouble in the Monaco box when Zenit had corners too. (6/10)
Midfield
Viktor Fayzulin: Covered a lot of ground in the middle of the pitch, but didn't have much to show for it. Was booked for a distasteful challenge in the second half. (6/10)
Axel Witsel: Disappointing. Usually a driving force, failed to deliver tonight. No real ideas when on the ball and lacked creativity. (6/10)
Danny: The captain did his best to take the ball forward, but a lack of enterprise saw to his downfall. Not really helped out by the away side's forwards. (6/10)
Javi GarcĂa: Poor night for the often combative midfielder. Was second to most balls, should've been booked and almost gave away a penalty. (5/10)
Attack
Hulk: Strength and paced caused problems in the first half, but he drifted from recognition. Far too selfish at points in the game. (6/10)
Jose Rondon: Virtually anonymous. Had one half-chance in the early minutes. Didn't hold up the ball, nor did he make too many dangerous runs. Failed to provide an option for his teammates. (5/10)
Substitutes
Aleksandr Ryazantsev: Substitute midfielder was a bystander in a team that was already on its way to being eliminated from the tournament. (6/10)
Oleg Shatov: Came on to replace Faizulin, though Monaco had already upped their game by the time of his introduction. Could do very little to stop an inevitable defeat. (6/10)