Erling Braut Haaland netted a first half brace to help Dortmund come from behind to beat Sevilla.
The Spanish side took a seventh-minute lead after a Suso shot deflected in off Mats Hummels.
Mahmoud Dahoud then scored a stunning equaliser before Haaland struck twice in 15 minutes inside the first half, taking his tally to 18 goals in 13 games in the competition.
Luuk De Jong came off the bench to score in the 84th minute to give Sevilla hope.
Porto held on for a narrow 2-1 win over Juventus.
With only two minutes on the clock, Mehdi Taremi capitalised on a defensive error to put his side ahead, before Moussa Marega doubled the advantage at the start of the second half.
Federico Chiesa pulled one back in the 82nd minute, and Juve had a penalty shout in added time when Cristiano Ronaldo went down in the box, but the referee did not award the spot-kick.
In LaLiga, leaders Atletico Madrid were held to a 1-1 draw at Levante.
After Luis Suarez went close with a header, it was the hosts who took the lead through Enis Bardhi.
Atletico managed to level before half-time when Marcos Llorente’s strike was deflected in.
In Ligue 1, Marseille held on for a 3-2 victory over Nice.
Saif-Eddine Khaoui scored twice for the home side, after Alvaro Gonzalez put them ahead in the 14th minute.
Amine Gouiri and Malik Sellouki pulled goals back, but the visitors were unable to find an equaliser.