Champions League: Which teams have qualified for the last 16?
Chelsea, Manchester City, Arsenal and Manchester United are all through to the last 16 of the Champions League.
All four German clubs - holders Bayern Munich, Borussia Dortmund, Bayer Leverkusen and Schalke - progress and join Spanish trio Barcelona, Real Madrid and Atletico Madrid in the knockout phase.
AC Milan will be the sole Italian representative after Christmas as Serie A leaders Juventus could only finish third in Group B.
Galatasaray, Paris St-Germain, Olympiakos and Zenit St Petersburg complete the line-up.
Here is your full round-up of all of the group-phase action.
Manchester United have been joined by Bayer Leverkusen in qualifying for the knockout stages.
Leverkusen beat already eliminated Real Sociedad 1-0 in Spain on Tuesday and progressed after Shakhtar Donetsk lost 1-0 to United at Old Trafford. Phil Jones' winner ensured David Moyes' men top spot in the group.
Leverkusen went into the game on the back of a morale-boosting 1-0 win over Borussia Dortmund in the Bundesliga on Saturday.
A draw would not have been enough for Bayer as level teams are decided on head-to-head results before goal difference, but Omer Toprak's early second-half strike sealed their progression.
Shakhtar, the Ukrainian Premier League leaders, finished third and go into the Europa League.
Real Madrid have topped the group and were joined in the knockout stages by Galatasaray after a dramatic end to the Turkish side's final group game against Juventus.
After an initial attempt to stage the game had to be halted because of worsening snowfall after 32 minutes, the match resumed the next day on a rutted, muddy surface at the Ali Sami Yen Spor Kompleksi in Istanbul.
With a draw good enough to take Juventus through, the Italian champions were on course for the last 16 until Galatasaray's Wesley Sneijder, who used to play for their rivals Inter Milan, scored the only goal of the game in the 85th minute to consign them to the Europa League instead.
Cristiano Ronaldo set a Champions League record as Real Madrid beat Copenhagen 2-0 in Denmark.
The Portuguese became the first player to score nine goals in the group stage of the competition, with Real also setting an all-time record in European competitions by netting in 31 successive matches.
Olympiakos have joined Paris St-Germain in the last 16.
Benfica's 2-1 home win over group winners PSG was not enough to prevent their Champions League exit after Olympiakos beat Anderlecht 3-1 at home on Tuesday.
Argentine forward Javier Saviola scored twice for the Greek side, who also missed two penalties, as their opponents ended the match with eight men following three red cards.
Benfica and Olympiakos finished level on points but the Portuguese side lose out because of their inferior head-to-head record against their Greek rivals and have to settle for a place in the Europa League.
Paris St-Germain had already secured top spot in the group prior to Tuesday's clash and rested top marksman Zlatan Ibrahimovic and centre-backs Thiago Silva and Alex.
Uruguay striker Edinson Cavani still put them ahead but a penalty from Lima and a goal by Nicolas Gaitan gave Benfica hope until Olympiakos' win over Anderlecht.
Manchester City staged a comeback to end Bayern Munich's record run of 10 consecutive Champions League wins with a 3-2 victory on Tuesday but they still finished as group runners-up behind the German champions.
The two teams had already qualified for the knockout stages but, finishing level on points, Bayern won the group on head-to-head record having beaten City 3-1 in Manchester in October.
Goals from Thomas Muller and Mario Gotze gave the hosts the lead before David Silva pulled a goal back from close range after Jesus Navas's cross. Aleksandar Kolarov equalised with a penalty after James Milner was tripped before Milner's fine finish won it.
Viktoria Plzen took third place and a spot in the Europa League by beating nine-man CSKA Moscow 2-1. Second-half substitute Tomas Wagner scored in the final minute as the Czech side came from behind to seal third place.
Chelsea's 1-0 win over Steaua Bucharest ensures the Blues, who already secured their qualification before the last round of matches, finish top of the group.
Jose Mourinho's men had to beat already eliminated Steaua Bucharest in their last game on Wednesday to be sure of winning the group, which they did thanks to Demba Ba's strike.
They are joined in the last 16 by German side Schalke, who leapfrogged Basel into second place with their 2-0 win over the Swiss outfit, who only needed a point to qualify.
Basel had Ivan Ivanov sent off in the first half and will have to settle for a place in the Europa League after being consigned to third place in the group.
Arsenal qualified for the knockout stages but will get a tough draw against a group winner after Wednesday's 2-0 defeat away to Napoli saw them only finish runners-up.
The Gunners looked like they were going to top the group, despite their loss in Italy, until a late winner for Borussia Dortmund at Marseille put the Germans top.
Kevin Grosskreutz's 87th-minute strike earned Dortmund a 2-1 win in France to save last season's losing finalists from elimination.
It means Rafael Benitez's men, despite their win over Arsenal, have to settle for a place in the Europa League.
Marseille finished bottom of the group without a point.
Atletico Madrid had already won Group G after victories in their first four games but emphasised their superiority with a 2-0 win over Porto on Wednesday.
Porto's defeat in Spain ended any hopes the Portuguese side, who needed to win and for Zenit St Petersburg to not win to finish second in the group, had of staying in the Champions League.
Their loss meant Zenit's 4-1 hammering at Austria Vienna was immaterial as the Russians progress with Atletico into the last 16.
Porto do have the small consolation of qualifying for the Europa League, after beating Austria Vienna to third place courtesy of their better head-to-head record.
Barcelona had already qualified but secured top spot in the group with a 6-1 hammering of Celtic.
Brazil striker Neymar ended his Champions League drought in style with a treble, with the Scottish champions already certain to finish bottom.
AC Milan progressed into the last 16 with Barcelona after holding Ajax to a goalless draw, despite playing much of the match with 10 men on Wednesday.
Ajax needed to beat Milan to knock the Italians out and qualify in second and, after heavy pressure came to nothing, must go into the Europa League.