Both Malaga and Porto boasted 100% records from their opening three games, and although neither side were able to win tonight, respective away draws against AC Milan and Dynamo Kiev were enough to secure top-two berths for both clubs.
Group C pacesetters Malaga took the lead at the San Siro through Eliseu's 40th-minute goal but were pegged back by Alexandre Pato's 73rd-minute effort - the Brazilian's first Milan goal since last December and the first the Spanish side had conceded in the Champions League.
Also in Group C, Anderlecht moved into third place, a point behind Milan, with a 1-0 home win over Zenit St Petersburg, Dieumerci Mbokani scoring the only goal in the 17th minute.
Porto, meanwhile, moved on to 10 points in Group A following a goalless draw away to Dynamo Kiev.
The Portuguese outfit look set to be joined in the last 16 by Paris St Germain, who remained just one point behind following a Zlatan Ibrahimovic-inspired 4-0 thrashing of Dinamo Zagreb.
Ibrahimovic did not manage to get on the scoresheet but was involved in all four goals scored by Alex, Blaise Matuidi, Jeremy Menez and Guillaume Hoarau as PSG moved five points clear of third-placed Kiev with two games remaining.
Both matches in Group D - undoubtedly the toughest pool in the competition - finished in 2-2 draws, leaving big-spending Manchester City all but out of contention for a place in the knockout stages.
City were left with a mountain to climb after two Siem De Jong goals saw them trailing 2-0 at home to Ajax after just 17 minutes.
Roberto Mancini's side managed to get back on terms thanks to goals from Yaya Toure (22) and Sergio Aguero (74) but despite a late onslaught they could not snatch a winner.
City now have just two points from their four games, leaving them two points behind Ajax, five adrift of second-placed Real Madrid and six behind leaders Borussia Dortmund.
Dortmund and Madrid shared the points at the Bernabeu with the Spanish giants twice fighting back from deficits thanks to Pepe (34) and Germany international Mesut Ozil (89). Dortmund had taken the lead through goals from Marco Reus (28) and an own goal from Alvaro Arbeloa (45).
In Group B, Schalke also battled back from 2-0 down to salvage a point at home to Arsenal and remain one point clear of the Gunners at the summit.
Goals from Theo Walcott and Olivier Giroud gave Arsenal a 2-0 lead but Klaas Jan Huntelaar halved the deficit just before the break and Jefferson Farfan's 67th-minute equaliser earned Schalke the draw.
Closing the gap on the top two were Olympiacos, who moved onto six points - one behind Arsenal - after claiming a second successive victory over Montpellier.
After earning a stoppage-time win in France a fortnight ago, Olympiacos again left it late before snatching victory tonight with two goals in the last 10 minutes from Leandro Greco and Kostas Mitroglou.
Those strikes came after Younes Belhanda's second-half penalty for Montpellier had cancelled out Paulo Machado's early opener for the the Greek side.
While Malaga and Porto earned their spots in the knockout stages, tonight's defeats for Montpellier and Dinamo Zagreb mean neither of those sides can now reach the last 16.
Montpelier are five points adrift at the bottom of Group B while Zagreb have no goals and no points from four games in Group A.
Tuesday's Champions League Results