MANCHESTER CITY escaped with a 1-1 draw against Borussia Dortmund, and it had goalkeeper Joe Hart's heroics and a 90th minute penalty goal to Mario Balotelli to thank for it.
Neven Subotic's handball, and Balotelli's subsequent penalty, gave City some redemption after Christiano Ronaldo's last-minute goal for Real Madrid had consigned the EPL champions to a loss in the final minute a fortnight ago.
The Zenit St Petersburg versus AC Milan game was also a thriller, Milan bouncing back to win 3-2 after giving up a two-goal advantage.
Tomas Hubocan turned the ball into his own net in the final 15 minutes, breaking his team's 16-game unbeaten streak on home soil.
Real Madrid stayed top of Group D after demoralising Ajax 4-1, with Ronaldo scoring a hat-trick.
In other results, Porto left it late in its 1-0 victory over Paris St Germain, Schalke drew 2-2 against Montpellier, Dynamo Kyiv beat Dinamo Zagreb 2-0 and Arsenal enjoyed a comfortable 3-1 win over Olympiacos.
The Gunners recovered from a slow start, a moment of brilliance from Gervinho putting them in front after 42 minutes, to remain on top of Group B.
Update your news preferences and get the latest news delivered to your inbox.