Robert Lewandowski scored the 82nd-minute winner as Borussia Dortmund put the brakes on Arsenal's campaign with a 2-1 win in London that, along with Napoli's 2-1 win at Olympique Marseille, put three teams on six points in a tight Group F.
There is a clear leader in Group G, where Atletico made it three wins from three with a 3-0 victory at Austria Vienna that put them a point away from the 10 that are usually enough to send teams into the last 16 of Europe's elite club competition.
They are five points clear of second-placed Zenit St Petersburg, who made the most of the sixth-minute sending off of Porto's Hector Herrera - the competition's fastest ever from two yellow cards - to beat their Portuguese hosts 1-0.
In Group E, Chelsea moved level on six points with Schalke 04 at the top with a 3-0 win in Germany where Torres celebrated his 100th start for the club with the fifth-minute opener and another after 69 minutes before Eden Hazard added a late goal.
The top two are clear of third-placed Basel, who have four points ahead of Steaua Bucharest on one after those two teams shared the spoils in a 1-1 draw in Romania.
Celtic got their first points in Group H after a James Forrest penalty on the stroke of halftime and a deflected shot by Beram Kayal early in the second half helped them to a 2-1 win over Ajax Amsterdam, who got a consolation in added time.
Barca are in charge of that group with seven points, while Milan - who had gone ahead through Robinho's ninth-minute opener before Messi levelled after 23 minutes - have five points. Celtic are on three points with Ajax bottom on one.