Real Madrid edged past Sporting Lisbon 2-1, while Juventus came from behind to secure a 3-1 win at Sevilla and Borussia Dortmund crushed Legia Warsaw 8-4 to set a record for the most goals scored in a Champions League match.
Images from the Champions League matches played on Tuesday:
Late Benzema header gives Real victory
Champions League holders Real Madrid secured a last-16 berth for the 20th successive season after an 87th-minute header by substitute Karim Benzema gave them a laboured 2-1 win at 10-man Sporting Lisbon in their Group F clash on Tuesday.
The result left Real second in the group on 11 points from five games, two behind Borussia Dortmund who crushed Legia Warsaw 8-4 to set a record for the most goals scored in a Champions League match.
Dortmund need a draw when they visit Real at the Bernabeu on Dec 7 to win the section. Sporting have three points and will clinch a consolation last-32 berth in the second-tier Europa League with a draw at Legia.
Real stretched their unbeaten run in all competitions to 30 games after a patchy performance in which their top scorer Cristiano Ronaldo, needing two goals to reach a 100-goal milestone in European club competition, was largely subdued.
France defender Rafael Varane fired Real ahead in the 29th minute but it took a late glancing header by Benzema to rescue them after Adrien Silva had equalised with a penalty after Joao Pereira's 64th-minute red card.
Varane drilled the ball home from six metres after Ronaldo unwittingly laid the ball into his path following an inviting cross by Luka Modric.
Needing a win to keep alive their own hopes of advancing, Sporting matched Real in every department for long spells but were up against it after Pereira was sent off following an altercation with Mateo Kovacic.
Their 80th-minute equaliser came out of the blue, with substitute Fabio Coentrao handling the ball while raising his arm to appeal for handball by Sporting forward Joel Campbell.
Real appeared to be heading for a draw -- and the group's runners-up spot -- after Silva blasted his spot kick past Keylor Navas, but Benzema made his presence count after coming on for Isco midway through the second half.
Just as Sporting pressed forward in search of a winner despite their numerical disadvantage, Benzema steered an inch-perfect cross by Sergio Ramos into the bottom right corner.
Juve qualify after stormy win
Juventus came from behind to secure a 3-1 win at Sevilla and reach the Champions League knockout stage on Tuesday, helped by a controversial penalty and a first-half sending-off.
Nicolas Pareja gave Sevilla an early lead but it fell apart for the hosts after Franco Vazquez was booked twice in a five-minute spell and Juve's Claudio Marchisio levelled with a hotly-protested penalty in first-half stoppage time.
Late goals by Leonardo Bonucci and Mario Mandzukic for the visitors then settled a petulant game that produced 31 fouls and eight yellow cards.
Sevilla coach Jorge Sampaoli was also dismissed for persistent dissent and watched the final half hour among the home supporters.
Juventus, missing injured strikers Gonzalo Higuain and Paulo Dybala, went top of Group H with 11 points from five games, one ahead of Sevilla who still need a point at Olympique Lyonnais in their final game.
Moise Kean became the first player born after the start of 2000 to appear in the Champions League when he came on for Juventus in the 84th minute. Aged 16 years and 267 days, he is the sixth youngest player to have appeared in the competition.
Sevilla made a frenetic start and went ahead when defender Pareja volleyed past Gianluigi Buffon from the edge of the penalty area in the ninth minute after a headed clearance landed invitingly at his feet.
Juventus were struggling to play their way out of defence as the Spanish side poured forward, attacking with seven or eight players and pressing the Serie A team deep in their own half.
Sevilla's troubles began in the 31st minute when Vazquez was booked for clattering into Juan Cuadrado, who angered the Spaniards by playing on when they had a player down injured and were demanding he kick the ball into touch.
Five minutes later, Vazquez clipped Sami Khedira's leg and was sent off.
Already aggrieved, Sevilla were further angered when referee Mark Clattenburg awarded Juventus a penalty in first-half stoppage time for an off-the-ball push on Bonucci at a corner.
Marchisio converted with a shot which Sevilla keeper Sergio Rico got his hand to but could not stop. It was the first goal Sevilla had conceded in the group.
Sevilla still tried to win the game but Juventus finally made the extra man count when a headed clearance landed on the edge of the area and Bonucci, without breaking stride, drilled the ball home with his left foot with five minutes left.
Mandzukic completed the win when he collected Marchisio's pass and cut inside to score the third in stoppage time.
Reus 'tricks' in Dortmund's record win
Already-qualified Borussia Dortmund crushed Legia Warsaw 8-4 on Tuesday to set a record for the most goals scored in a Champions League match, helped by a Marco Reus hat-trick.
Rampant Dortmund netted five times in 15 first-half minutes with Shinji Kagawa grabbing two goals while Reus, back for the first time after six months out injured, completed the scoring in stoppage time.
Dortmund are top of Group F on 13 points, two points ahead of Real Madrid, who beat Sporting 2-1 away, with the two sides meeting in Spain in December to decide who takes top spot in the section.
"I was just happy to be there from the start," Reus, who missed the 2014 World Cup and Euro 2016 because of injury, told reporters. "It is how you imagine your perfect comeback.
"I waited a long time for this and so it is even sweeter. The ball will be signed by everyone and will go on the shelf."
With the 27-year-old Reus named captain and coach Thomas Tuchel resting key players following their league win over Bayern Munich on Saturday, Dortmund took control from the start.
But it was the visitors who struck first with Aleksandar Prijovic brilliantly curling in his shot with the outside of his foot in the 11th minute.
Their lead, however, lasted only six minutes with Kagawa nodding in Oussmane Dembele's low cross at the far post as Dortmund began their goal bonanza.
The Japanese grabbed his second goal a minute later and Nuri Sahin, making only his second appearance this season, got on the scoresheet after goalkeeper Radoslaw Cierzniak punched a Reus free kick straight onto the midfielder's chest in the 20th minute.
Prijovic got his second of the evening in the 25th minute and could have levelled when he chipped the ball onto the crossbar a minute later.
Two goals in three minutes from Dembele and Reus wrapped up a frenzied first half.
Reus picked up where he left off after the break, tapping in for his second goal in the 52nd minute with Legia's Michal Kucharczyk pulling one back yet again for the visitors.
The teams traded blows once more with Legia's Nemanja Nikolic scoring two minutes after Felix Passlack had headed in Dortmund's seventh goal.
Reus ended the goalfest with his third in stoppage time for the record-breaking 12th goal of the game.