Bayern Munich and Inter Milan reached the Champions League last-16 as the qualification picture became clearer ahead of the final round of games.
Real Madrid, already through, raced into the competition's fastest four-goal lead after only 20 minutes against hapless visitors Dinamo Zagreb.
But the Croatians stopped Jose Mourinho's men equalling their record win with two late consolation goals.
Basel kept the pressure on Manchester United with a 3-2 win at Otelul Galati.
Manchester City, who lost 2-1 at Napoli, face a massive task in their decisive game against Group A winners Bayern - though the Germans could inadvertently ease up in their final group match.
Franck Ribery's double, either side of Mario Gomez's strike, helped Munich beat Villarreal 3-1 and seal their progress, with the second qualification place set to go Napoli unless they fail to beat Villarreal and open the way for City.
In Group C, Basel raced into a 3-0 half-time lead before holding off a spirited second-half comeback from Romanian hosts Galati.
But a point for Sir Alex Ferguson's team in Switzerland next month will assure a last-16 spot at the expense of their hosts.
United drew 2-2 against Benfica, who clinched their own quarter-final place at Old Trafford.
Group D table-toppers Madrid raced into the record books with early strikes from Karem Benzema, Jose Callejon, Gonzalo Higuain and Mesut Ozil.
Callejon and Benzema both scored again after the break, before Fatos Beciraj and Ivan Tomecak netted in the last 10 minutes to stop Real equalling their 6-0 success against Racing Genk in 2002.
Joe Cole's Lille clinched an elimination-saving 2-0 win at CSKA Moscow in Group B's early kick-off - which also sealed Inter's passage before their 1-1 draw at Trabzonspor.