Shakhtar march on in Europa League
Turkey's Galatasaray also advanced with two matches to spare, winning 3-0 at Dinamo Bucharest in Group F, while Salzburg are on the verge of progressing after beating Group G rivals Levski Sofia 1-0 with a stoppage-time goal by Franz Schiemer.
Werder Bremen left it late to beat Austria Vienna 2-0 in Group L, Tim Borowski and Hugo Almeida on target as the Germans moved into the last 32.
Second-half goals by Luiz Adriano and Olexiy Gai in southern France gave Ukrainians Shakhtar a maximum 12 points from four games in Group J.
Group E is turning into a real dogfight. Former Liverpool full back John Arne Riise scored for Roma in a 2-1 triumph over England's Fulham in the Olympic Stadium after the Serie A club had gone behind.
Stefano Okaka Chukka grabbed the winner after Erik Nevland was sent off for visiting Fulham, who ended with nine men when Paul Konchesky was red-carded in stoppage time.
The win lifted Roma into second place, two points behind Basel who beat CSKA Sofia 3-1.
"With these types of refereeing decisions it's very hard to get a result," Fulham manager Roy Hodgson told ITV after his side slipped to third. "We hope the referees will be a bit kinder to us in the Premier League than in this league."
England's other representatives Everton also lost, going down 2-0 at home to Benfica after their heavy defeat in Portugal two weeks ago.
Benfica top Group I with nine points, three more than Everton.
NEWS: Nine-man Fulham rue red cards in Rome, Everton beaten by Benfica
Ajax Amsterdam overcame Dinamo Zagreb 2-0 in Group A and are favourites to go through with Anderlecht, who scored their 500th goal in European competition in a 3-1 defeat of FC Timisoara.
Valencia still have work to do in Group B after a 2-2 draw with 10-man Slavia Prague.
Another Spanish side, Villarreal, were involved in an incident-packed match against Lazio, winning 4-1 in a Group G clash that featured two red cards and eight bookings.
Two goals from Robert Pires inspired second-placed Villarreal. Lazio had Roberto Baronio sent off while Villarreal's Gonzalo was also dismissed.