Manchester City gave it a right old go, but fell just short as Real Madrid and Borussia Dortmund progressed into the knockout stages of the Champions League from the group of death, while Arsenal scored a comfortable 2-0 win over Montpellier to qualify to the last-16 yet again.
City failed to unlock their opponents' defense more than once as 10-man Real held on for a 1-1 draw, with Dortmund thumping Ajax 4-1. Schalke beat Olympiakos 1-0, which meant both the Arsenal and the German club went through, while AC Milan also ensured progress with a 2-1 win over Anderlecht.
In the big game of the night, it was all Real Madrid in the first half, before City fought back in the second, aided no doubt by a red card and a penalty. Karim Benzema gave the Spanish champions the lead at the Etihad in the 10th minute, prodding home from three yards out off a cross from Angel Di Maria, as the City defense went completely to sleep.
The score remained 1-0 at the end of the first half, as Roberto Mancini tried to rally his troops for the second period. That was evident, with Sergio Aguero inexpicably failing to score from a yard out, off a cross shot from Maicon; although goalkeeper Iker Casillas should get most of the credit for anticipating the Argentine's finish and making a brilliant save.
The goal came with 15 minutes remaining, off a penalty. Alvaro Arbeloa was adjudged to have brought down Aguero inside the box, with the Spanish international fullback earning himself a second yellow card and an early shower.
Aguero himself stepped up to take the spotkick, and calmly slotted into the back of the net, sending Casillas the wrong way. With City in the ascendancy, it looked like an improbable victory was on the cards, but Real held on comfortably enough. In Amsterdam, Robert Lewandowski netted a brace as Dortmund smashed Ajax on the counter attack to cruise through with a 4-1 victory and storm into the next stage.
At the Emirates, in a match, which was not exactly a wonderful spectacle, Arsenal did a professional job, scoring two goals in the second half to earn themselves a place in the next round.
Jack Wilshere scored his first goal since making a comeback from injury, neatly finishing off a knockdown from Olivier Giroud, after Thomas Vermaelen had played the ball into the box, in the 40th minute.
Just past the hour mark, Arsenal sealed all three points off a moment of absolute brilliance from Lukas Podolski. The German exchanged a couple of passes with Giroud, with the French striker lobbing a perfectly weighted ball over the top for Podolski to smash it into the top of the net on the volley.
Arsenal would not have ensured progress had Schalke not won in Germany against Olympiakos, but a goal from Christian Fuchs in the 77th minute means both teams are through, with just the group winners to be decided on matchday six.
Results: Group A: Porto 3-0 Dinamo Zagreb; Dynamo Kyiv 0-2 PSG. Group B: Schalke 1-0 Olympiakos; Arsenal 2-0 Montpellier. Group C: Zenit 2-2 Malaga; Anderlecht 1-3 Milan. Group D: Ajax 1-4 Borussia Dortmund; Manchester City 1-1 Real Madrid.