Det fanns målchanser åt bägge håll i första halvlek, men det Lionel Messi som klev fram.
Strax före halvtid gjorde han 1-0 för Barcelona och det var hans första mål i karriären mot Juventus och veteranmålvakten Gianluigi Buffon.
Han drev bollen elegant framåt, väggspelade med Luis Suarez, och avslutade snyggt.
Rakitic satte 2-0
I andra halvlek var det mest Barcelona.
I den 56 minuten gjorde kroaten Ivan Rakitic 2-0 och för förarbetet förstås Messi som tog en löpning längs med kanten.
13 minuter senare var han där igen. Messi drev bollen in centralt och stänkte in sitt andra mål för kvällen.
I den 79 minuten hade Suarez bollen i mål, men då var det offside.
Juventus första premiärförlust
Barcelona toppar därmed grupp D efter en omgång. Tvåa är Sporting som slog grekiska Olympiakos med 3-1.
I våras körde Juventus över Barcelona med 3–0 på hemmaplan och avgjorde Champions League-kvartsfinalen redan i det första mötet. Nu var det alltså omvända siffror och första gången italienarna förlorade en premiärmatch i Champions League.
Katalanerna leder också den inhemska ligan efter tre raka segrar och 9-0 i målskillnad.