You are not permitted to download, save or email this image. Visit image gallery to purchase the image.
Paris St Germain, Arsenal and Bundesliga pair Borussia Dortmund and Schalke 04 were the other teams to qualify for the last 16 with a match to spare.
Nine-time champions Real Madrid went through with a 1-1 draw at City, who fell at the group stage for the second season in a row.
Karim Benzema gave Jose Mourinho's team an early lead and Sergio Aguero's 74th minute penalty was too late to save the hosts in Group D.
Bundesliga champions Dortmund gave the evening's most impressive display as they trounced four-times European champions Ajax Amsterdam 4-1 away in the same group.
Mario Goetze scored one goal and was involved in two others converted by Marco Reus and Roberto Lewandowski as Dortmund raced to a 3-0 halftime lead in Amsterdam.
Lewandowski added the fourth before Daniel Hoesen pulled one back.
Ezequiel Lavezzi scored twice to help ambitious Paris St Germain win 2-0 at Dynamo Kiev and qualify from Group A, joining Porto who were already though.
Arsenal's 2-0 win over Montpellier and Schalke's 1-0 defeat of Olympiakos Piraeus meant both sides progressed from Group B.
Seven-times champions AC Milan put their Serie A problems behind them as Stephan El Shaarawy, Philippe Mexes and Alexandre Pato scored in the second half to give them a 3-1 win at Anderlecht in Group C.
They joined Malaga, who had already qualified and guaranteed top spot with a 2-2 draw at Zenit St Petersburg.