The Champions League group stage has finally concluded, and not without some late drama. Groups F and H came down to the wire with finishes that were about as dramatic as possible. But first...
Galatasaray 1-0 Juventus
A bonus! Galatasaray and Juventus played for a half hour on Tuesday before the game was abandoned due to hail. It restarted in what was essentially a mudpit on Wednesday. The pitch was almost certainly more dangerous and more difficult to play on than the one that was covered with ice, but the game went on anyway. Gala nicked it with a late goal to knock out the Old Lady.
Schalke 2-0 FC Basel
An early red card was the Swiss side's undoing. After Ivan Ivanov went off in the 31st minute, there never seemed to be much of a way back for Basel. Julian Draxler put Schalke ahead in the 51st minute and Joel Matip sealed their win six minutes later to send the Königsblauen through in second place.
Chelsea 1-0 Steaua Bucharest
Chelsea entered this game having already progressed, while Steaua were already out. Mark Schwarzer played instead of Petr Cech. It didn't matter, and Chelsea topped the group.
Marseille 1-2 Dortmund
Der BVB were absolutely dominant for an hour of this match, but it took them until the dying minutes for them to pull out a much-deserved winner. Robert Lewandowski started what looked like it was going to be a rout with a goal in the fourth minute, but Souleymane Diawara struck back against the porous Dortmund defense 10 minutes later. After Dimitri Payet was sent off for Marseille, Dortmund took over, but they left the result late.
There was a bit of controversy in the 85th minute when the referee didn't give a penalty for an apparent foul by Steve Mandanda on Lewandowski, but the Marseille keeper made it up to Dortmund two minutes later, whiffing on a fairly routine save to let Kevin Großkreutz's winner bounce by him. Dortmund would have been out of the Champions League with a draw, but managed to top the group with a win.
Because of Dortmund's win, Napoli needed to defeat Arsenal 3-0 to beat the Gunners on aggregate score and away goals, and therefore progress past them into the knockout stage. They only found two.
Austria Vienna 4-1 Zenit St. Petersburg
Zenit apparently saw the score of the other game in this group and opted not to try very hard, knowing that their fate was sealed. Not to discredit Austria Vienna, who are obviously a respectable team if they made it to the Champions League knockout stage in the first place, but it's tough to see this happening in a scenario where Zenit knew they needed to win. The game was 1-1 at halftime, but Zenit conceded twice in the first six minutes of the second half and again in stoppage time. Smells of a team that knew they were safe and didn't care about anything else, no?
Atletico Madrid 2-0 FC Porto
Atleti gave rests to Thibaut Courtois, David Villa, Arda Turan and Diego Godin in this match, but still fielded a very strong team despite not needing a result from the match. They took the lead early through Raul Garcia and managed to hang on to it thanks to backup goalkeeper Daniel Aranzubia, who saved a 28th-minute penalty by Josue. Diego Costa added Atleti's second goal in the 37th minute, assisted by 19-year-old wonderkid Oliver Torres.
AC Milan 0-0 Ajax
Milan are mid-table in Serie A, play generally crap football and have a manager who's been on the verge of getting fired for well over a year, but they're the only Italian side to qualify for the Champions League knockout stage. They did so in somewhat lucky fashion, barely holding on to a draw with 10 men against Ajax. Riccardo Montolivo was sent off in the 22nd minute and it was all Ajax from there. Sadly for the Dutch side, their 25 shots and 70 percent possession led to no goals.
Barcelona 6-1 Celtic
Neymar scored a hat trick!