Cristiano Ronaldo scored two penalties to take his Champions League goal tally to 134 as Juventus beat Barcelona to seal top spot in Group G.
Ronaldo sent Marc-Andre ter Stegen the wrong way after being fouled by Uruguay defender Ronald Araujo.
Juve doubled their lead through Weston McKennie’s bicycle kick before Ronaldo added a second with a video assistant referee-awarded penalty.
It is Barcelona’s first defeat in a group game since 2016.
They started the day with a three-point cushion over Juve but finish second and will be unseeded in next Monday’s last-16 draw.
Barcelona forward Lionel Messi and Ronaldo, regarded as the two greatest players of their generation, were facing one another for the first time since May 2018.
While Ronaldo scored two, Messi was frustrated by 42-year-old Juve keeper Gianluigi Buffon, who made a string of fine saves as the Bianconerri walked away from Cataluna with all three points and a clean sheet to boot.