An eventful evening of UEFA Champions League action saw plenty of drama, goals and heartache as eight matches in Groups E-H took place.
[ RELATED: UCL scores ]
Manchester City snatched a late win against Bayern Munich to boost their last 16 chances, while Chelsea smashed five past Schalke to top their group.
[ RELATED: UCL standings ]
Lionel Messi broke the all-time UCL scoring record as Barcelona romped past APOEL, while there were also wins for PSG, Sporting Lisbon, Bilbao and FC Porto.
Catch up on all the action with recaps on all eight games below, as there is just one UCL matchday left for these 16 teams.
Manchester City 3-2 Bayern Munich – RECAP
Aguero was the hero as he bagged a hat trick to hand City a UCL lifeline. The tiny Argentine striker put City 1-0 up from the spot as Mehdi Benatia was sent off but Bayern shockingly went ahead with just 10-men as goals from Xabi Alonso and Robert Lewandowski stunned City. Aguero scored two in the final five minutes to set up an epic showdown with AS Roma in two weeks time. City know a win or a score draw in Rome, coupled with a Bayern win over CSKA, will see them go through. They are still alive.
CSKA Moscow 1-1 AS Roma
Roma took the lead in freezing Moscow thanks to Francesco Totti’s powerful free kick but crucially gave up an equalizer with the last kick of the game which could cost them dear. Defender Berezoutski looped in a cross in the final minute which missed everyone and went in, as Roma must now beat City at home to seal qualification to the last 16 or draw 0-0 and hope CSKA lose to Bayern. Any score draw with City and a defeat for CSKA to Bayern will result in Roma crashing out. Okay? Head hurt yet? Permutations galore…
APOEL Nicosia 0-4 FC Barcelona
A hat trick from Messi (all with his right foot) did the damage as he became the UCL’s all-time leading scorer and Luis Suarez also scored his first Barca goal to give the Catalan club an easy win. Now they face PSG at home in their final group and must win to go top of Group F.
Paris Saint-Germain 3-1 Ajax
Two goals from Edinson Cavani and a strike from Zlatan Ibrahimovic kept PSG top of Group F. Davy Klaassen scored a superb diving header to level things up, but the Dutch champions were outclassed in the French capital. A draw or win at Barca will see PSG win the group.
Schalke 0-5 Chelsea – RECAP
Jose Mourinho’s men sealed top in Group G with an emphatic win in Germany, as they have set themselves up for a good draw in the last 16. Goals from John Terry, Willian, an own goal from Kirchhoff, Didier Drogba and Ramires made it an unhappy night for former Champions League-winning Blues Roberto Di Matteo and his Schalke side. A win away at Maribor in their final game could send Schalke through to the knockout round.
Sporting Lisbon 3-1 Maribor
Goals from Cardoso Mane, Nani and Islam Slimani secured the win for Sporting and they scored an own goal through Nascimento just to keep things interesting. Going into the final group game they are in second place, two points ahead of Schalke, but face Chelsea at Stamford Bridge knowing a defeat could see them miss out on a spot in the last 16.
BATE Borisov 0-3 FC Porto
Goals from Hector Herrera, Jackson Martinez and Christian Tello sealed top spot in Group H for the Portuguese side as they battered bottom side BATE.
Shakhtar Donetsk 0-1 Athletic Bilbao
The Spaniards sealed their first UCL win of the season thanks to San Jose’s goal, even though a shocking hand ball late on denied Shakhtar a clear equalizer in Ukraine. Shakhthar were already through to the last 16.