AMSTERDAM: Ajax produced a superb 2-1 victory over Barcelona to keep alive their hopes of reaching the Champions League knockout stages.

Ajax took a shock 2-0 half-time lead at the Amsterdam Arena as both Thulani Serero and Danny Hoesen netted their first European goals before Xavi scored a penalty after Joel Veltman was sent of.

The Dutch side withstood fierce pressure in the remainder of the second half to hold out for all three points.

With AC Milan beating Celtic 3-0 in the other Group H game, Ajax now face the Italians in their final game with the winners reaching the knockout stages.

The losers of that game will play in the Europa League, with Celtic eliminated from Europe with a game to spare.

Brazilian star Kaka put the visitors ahead at Parkhead, with Cristian Zapata and Mario Balotelli also on the scoresheet for the Italians.

Chelsea qualified for the knockout stages despite a limp performance as they were beaten by Basel for a second time in Group E.

Mohamed Salah’s fine goal three minutes from time earned Basle a deserved 1-0 victory at St Jakob Park and completed a double over Jose Mourinho’s Chelsea.

However, Schalke’s 0-0 draw at Steaua Bucharest means the Blues advance to the last 16 ahead of the December 11 meeting at home to the Romanians.

Jack Wilshere scored both goals as Arsenal beat Marseille 2-0 at the Emirates Stadium to all but secure a place in the knockout stages.

The Gunners now need just a point from their final game at Napoli, after the Italian side were beaten 3-1 by Borussia Dortmund.

Beaten finalists in May, and victims to Bayern Munich once again at the weekend, Dortmund had struggled to recreate last season’s swashbuckling group-stage performances and found themselves trailing Serie A runners-up Napoli by three points ahead of Tuesday night’s encounter.

But an early penalty from Marco Reus gave them the upper hand before second-half goals from Jakub Blaszczykowski and substitute Pierre-Emerick Aubameyang ruled Lorenzo Insigne’s response irrelevant.

Porto’s hopes of reaching the Champions League knockout stages were dealt a major blow as they could only draw at home to FK Austria.

Roman Kienast smashed in Vienna’s first goal of the group stage so far after 11 minutes before Jackson Martinez levelled shortly after half-time.

Zenit St Petersburg enjoyed a huge slice of fortune but have still yet to book their place in the last 16 after a 1-1 draw with Atletico Madrid.

Adrian put the Spaniards ahead in the 53rd minute before an absolute fluke goal – when highly-rated goalkeeper Thibaut Courtois completely miscalculated a straightforward tip-over from Toby Alderweireld’s defensive header – saved Zenit in the 74th minute.

################