Atletico Madrid eased through to the Champions League knockout stages with a comfortable win over Austria Vienna.
They were joined by fellow Spaniards Barcelona, whose 3-1 win over AC Milan included two goals from Lionel Messi.
They join Bayern Munich and Manchester City, who had already qualified from Group D on Tuesday.
The European champions beat Viktoria Plzen 1-0, while City made the last 16 for the first time with a 5-2 win over CSKA Moscow.
There were no goals in Group A on Tuesday night, with
drawing 0-0 after the German side's goalkeeper Bernd Leno made a series of fine saves.
Bayer Leverkusen's goalkeeper Bernd Leno denies Shakhtar Donetsk's Alex Teixeira
United failed to get the win they needed in Spain
to reach the last 16 but a victory for the English side in their next game against Leverkusen will put them through.
Leverkusen's superior head-to-head record with Shakhtar means they will progress if they take four points from their last two games, at home to United and away to Real Sociedad.
Four points could also be enough for Shakhtar. If the Ukraine side beat Real Sociedad and Leverkusen beat United in the next round of fixtures, they would qualify ahead of David Moyes's side with a 2-2 draw at Old Trafford.
Sociedad have only one point from four games but can still go through if they win their final two group games and United beat Leverkusen and get at least a draw with Shakhtar.
drew 2-2 with
but need one more point to be sure of qualification.
Even if they lose to
in their next two games, Real are unlikely to be denied a place in the last 16.
Copenhagen and Galatasaray would need to both beat Juventus and overturn Real by huge margins to outweigh the 4-0 and 6-1 defeats they suffered respectively in their first meetings with the Spanish giants.
If Juventus lose to Copenhagen next time out they will be eliminated. A draw would keep them in the competition, but leave them at the mercy of other results in the final round of matches. Victory in their last two matches would take them above both Copenhagen and Galatasaray and into the last 16.
Daniel Braaten backheels FC Copenhagen's winner against Galatasaray
Should Copenhagen and Galatasaray finish level on points in second position, the Turkish side would progress after winning 3-1 at home and losing by the one goal, Daniel Braaten's impudent backheel, in Denmark on Tuesday night.
Zlatan Ibrahimovic salvaged a draw for
as the French champions were made to wait for a Champions League last-16 spot.
Demy De Zeeuw put Anderlecht ahead after 68 minutes but Ibrahimovic levelled almost immediately, poking home at the second attempt after his first effort hit the post.
Zlatan Ibrahimovic celebrates after scoring Paris St Germain's equaliser
PSG will qualify if they beat
in their next game on 27 November.
Olympiakos have a superior head-to-head record against
so need four points to be sure of their progress. After going to Paris, they host Anderlecht on 10 December.
Four points could also be enough for Benfica if they beat Anderlecht and Olympiakos lose their last two games.
Anderlecht need to beat Benfica and Olympiakos and hope PSG beat Olympiakos and get at least a draw against Benfica.
are through to the last 16, with the German side sitting top of the group with a 100% record.
Bayern equalled Barcelona's Champions League record of nine straight wins by beating
Bastian Schweinsteiger hit the post and Plzen keeper Matus Kozacik made several good saves before Mario Mandzukic headed home Philipp Lahm's cross in the second half.
Bayern Munich celebrate Mario Mandzukic's winner against Viktoria Plzen
Either City or Bayern could still finish top but the only other thing to play for is the Europa League spot for the team finishing third.
That is between
whose only points so far have come from a win over Plzen, and the Czech champions who are bottom after losing all their matches.
moved three points clear at the top of Group E with their 3-0 win
who had started the night level on points with the Blues.
Jose Mourinho's side just need a point from their next match, at home to Basel, to secure qualification
Basel's Giovanni Sio slides in to score the late equaliser that held Steaua Bucharest to a 1-1 draw
The Swiss side
could have gone into second place if they had beaten
but the Romanians were a goal ahead for much of the game after striker Federico Piovaccari fired them ahead after 17 minutes.
Steaua were a few minutes away from going up into second place when substitute Giovanni Sio equalised for Basel in injury time.
are still level at the top of the group, on nine points, after their respective wins on Wednesday night.
The Gunners became the first English team to inflict defeat on Dortmund in the Westfalenstadion thanks to Aaron Ramsey's header, and they top the group after their victory over the Italian side earlier in the campaign.
Marseille had taken the lead after 10 minutes, but Napoli were ahead before half-time through two goals in as many minutes.
Napoli's Gonzalao Higuain puts Napoli 3-2 ahead against Marseille
The French side drew level after the break, but Gonzalo Higuain's second goal of the night gave the Italians a lead that they hung on to until full time, eliminating Marseille in the process.
If Arsenal beat Marseille at home, they will require just a point from their final match when they face Napoli away.
Napoli travel to Dortmund on match day five, but the German side, last season's Champions League runners-up, must win to stay in the competition if Arsenal beat Marseille. Even a draw would not be good enough for Jurgen Klopp's side if Arsenal win, as even if they drew level with Napoli with a win in the final match their head-to-head with would be inferior.
eased through to the last 16 with a 4-0 win over
The Spanish side were three goals ahead by half-time, through Miranda, Raul Garcia and Filipe Luis, and Diego Costa's 14th goal in all competitions in the second half ensured that Atletico will qualify as group winners.
Atletico Madrid's Diego Costa celebrates his side's fourth goal in the 4-0 win over Austria Vienna
With 12 points, they cannot be caught by
Zenit St Petersburg,
who have five points after their 1-1 draw at home to
Lucho had put the Portuguese side ahead halfway through the first half, but Zenit striker Hulk, playing against his old club, levelled five minutes later.
The Brazilian had the chance to put Zenit ahead from the penalty spot in the second half, but his weak effort was saved by Helton.
A win for Zenit will move them onto eight points if they beat Atletico on match day five, while Porto face the Austrian outfit, who have one point from four games.
booked their place in the last 16 with a 3-1 win over
Lionel Messi scored two goals either side of the break, with his first coming from the penalty spot, with Sergio Busquets grabbing the other while Gerard Pique's own goal had given Milan hope just before half-time.
Lionel Messi celebrates his second goal for Barcelona against AC Milan
Lasse Schone's superb goal was enough to give
a win over
that gives the Dutch side hope and leaves the Scottish champions struggling to qualify for the last 16.
Celtic need at least a point from their home meeting with Milan to retain hope of qualifying.