Cristiano Ronaldo's penalty brace fired Juventus to a stunning 3-0 win at Barcelona which put them top of Champions League Group G.
The striker won his battle against Lionel Messi at the Nou Camp as Juve topped the pool.
Weston McKennie also scored early as Juventus got the three-goal win they needed to pip their opponents to first place.
Messi drew a blank, meaning he is still two short of Pele’s goal record for a single club and remains stuck on 641.
Juventus struck first after 13 minutes when Ronaldo earned a controversial spot-kick.
The forward tangled with Ronald Araujo, with the pair tumbling in the area, and, despite Barca’s anger, referee Tobias Stieler awarded a penalty.
Ronaldo fired it down the middle, scoring for the first time in a Champions League game against a team featuring Messi.
The visitors doubled their lead seven minutes later when McKennie volleyed in Juan Cuadrado’s cross from six yards after Aaron Ramsey’s bustling run.
Messi was denied by Gianluigi Buffon a minute later and twice fired at the goalkeeper before the break as Barca tried to find a way back.
But Ronaldo struck again six minutes after the break when he buried his second penalty.
Stieler needed to check his monitor during a VAR review after Clement Lenglet handled in the area before awarding the spot-kick and Ronaldo sent Marc-Andre ter Stegen the wrong way.
Antoine Griezmann’s header hit the bar five minutes later and Buffon continued to frustrate Messi before Griezmann volleyed wide at the far post.
The visitors thought they had a fourth with 15 minutes left but Leonardo Bonucci’s effort was ruled out for offside after he bundled in Ronaldo’s knockdown.
Barcelona’s 25-match unbeaten run in the Champions League group stage was over – a streak going back to 2016 – and Buffon stopped Messi grabbing a late consolation with a fine low save.
Elsewhere, Dynamo Kiev beat Ferencvaros 1-0 thanks to Denys Popov's goal as they clinched third spot in the group.
Jules Kounde added to Youssef En-Nesyri's brace as Sevilla won 3-1 at Rennes to qualify with Chelsea from the group.
In Group F, Lazio qualified for the last 16 for the first time since 1999 after drawing 2-2 with Club Brugge.
Hans Vanaken's late header earned a point for the 10-man visitors but they finished third, two points behind Lazio.
Joaquin Correa gave the hosts the lead before Ruud Vormer levelled only for Ciro Immobile's penalty to restore Lazio's advantage while Eduard Sobol was sent off in the first half for the visitors.
Lukasz Piszczek and Axel Witsel struck in the second half as group winners Borussia Dortmund recovered from 1-0 down to win 2-1 at Zenit St Petersburg after Sebastian Driussi gave the hosts the lead.