Porto and Paris St Germain will play off in Paris next month to determine the winners of Champions Leauge Group A after both sides underlined their progression to the knockout stages with easy wins.
Porto remain a point clear at the top of the group after a 3-0 home win over pointless Dinamo Zagreb, Lucho Gonzalez putting them ahead in the 20th minute before second-half strikes from Joao Moutinho and Silvestre Varela.
And the French side also rubber-stamped their qualification with a 2-0 win over Dynamo Kiev in Ukraine, with Ezequiel Lavezzi opening the scoring on the stroke of half-time and adding a second soon after the break.
Sergio Aguero's late penalty was not enough to prevent Manchester City being eliminated from the Champions League after a 1-1 draw at home to Real Madrid.
Roberto Mancini's men needed a win to stand any chance of going into the final round of Group D fixtures with a qualifying place to play for, but fell behind to Karim Benzema's 10th-minute strike.
City rallied to equalise in the 73rd minute when Aguero slotted home from the spot after Alvaro Arbeloa's foul on the striker earned him a red card, but City could not make their numerical advantage pay and slid out of the competition.
Meanwhile Borussia Dortmund guaranteed progression as Group D winners with Robert Lewandowski scoring twice in a 4-1 thrashing of Ajax at the Amsterdam ArenA.
Marco Reus, Mario Gotze and Lewandowski put the in-form Germans out of sight by half-time, and after Lewandowski had added his second of the night, Danny Hoesen grabbed a consolation for the home side with four minutes left.
Malaga went through as Group C winners despite blowing an early 2-0 lead to draw 2-2 with Zenit St Petersburg in Russia. Diego Buonanotte and Sebastian Fernandez put the Spaniards in front with just nine minutes gone, before Danny and Viktor Fayzulin rescued a point.
Milan's 3-1 win at Anderlecht meant they will join Malaga in the knockout stages. Stephan El Shaarawy put Milan in front before Bram Nuytinck was sent off for the Belgians. Philippe Mexes added a second, Tom De Sutter reduced the deficit for the hosts but Alexandre Pato made it three in injury time.
Christian Fuchs scored the only goal of the game in the 77th minute as Schalke 04 beat Olympiakos to ensure qualification from Group B and give them a one-point advantage over second-placed Arsenal.
The Gunners also made sure they will join Schalke in the last 16 after putting their recent unpredictable form behind them with a 2-0 win over Montpellier. Jack Wilshere and Lukas Podolski scored in the second half.