Borussia Dortmund managed only a frustrating 1-1 draw at home against APOEL Nicosia to see their hopes of a knockout spot all but evaporate with two matches left in Group H.

Raphael Guerreiro put them ahead in the 29th and the Germans, 2013 finalists, should have scored several more in the first half before APOEL's Mickael Pote stunned the home crowd with a superb equaliser six minutes after the restart.

The result did neither team a favour with both on two points from four matches, five behind second-placed Real Madrid, who lost to group leaders Tottenham Hotspur.

Sevilla survived a late scare to beat visitors Spartak Moscow 2-1, avenging their heavy defeat in Russia and getting their last 16 qualification hopes back on track.

French defender Clement Lenglet gave Sevilla a deserved lead after half an hour when he headed home from a corner after the home side had crafted a number of chances in a fast start.

Spartak grew into the game and could have levelled before the break but Argentina midfielder Ever Banega doubled Sevilla's advantage with a cracking left-footed shot from outside the area on the hour mark.

Spartak pulled a goal back with 13 minutes remaining to make for a nervy finish for Eduardo Berizzo's side as striker Ze Luis converted on the rebound after Sergio Rico had parried an effort from Denis Glushakov.

Brazilian-born Ukraine international Marlos scored twice as Shakhtar Donetsk came from behind to beat Feyenoord 3-1 in their Group F clash at the Metalist Stadium and take a giant step towards the second round.

The victory leaves Shakhtar on nine points from four matches in the pool, three behind leaders Manchester City but six ahead of third-placed Napoli, whom they play next in Naples on November 21. Feyenoord have yet to secure a point.

The Dutch side took an early lead as Nicolai Jorgensen powered home a header but within five minutes their hosts had turned the match on its head as first Facundo Ferreyra equalised and then Marlos added a second with a curling effort from the edge of the box.

Feyenoord tried to play their way back into the game in the second half with a period of concerted pressure but were stung by a fine passing move from Shakhtar that ended with Marlos completing his brace to make the points safe. 

Turkey's Besiktas edged closer to a place in the Champions League last 16 after a pulsating 1-1 home draw with Monaco left them top of Group G with 10 points from four games.

Besiktas pinned Monaco back from the start but the visitors missed the best two chances before they scored against the run of play on the stroke of halftime.

Rony Lopez silenced the Besiktas faithful when he beat Fabri with a superb curling shot from 20 metres after the home team's keeper had denied Monaco's Portuguese striker and Belgian midfielder Youri Tielemans.

Besiktas were rewarded for their pressure in the 54th minute as Monaco left back Jorge hauled down Ricardo Quaresma in the penalty area and Cenk Tosun powered his spot-kick past Danijel Subasic.

Porto delayed Besiktas' qualification by beating RB Leipzig 3-1 at home to climb into second place in Group G.

Hector Herrera gave Porto a half-time lead and although Timo Werner hauled Leipzig level, goals from Danilo and Maxi Pereira secured them their second group win.