Messi gave the hosts the lead late in the first half with a stunning goal, and Ivan Rakitic doubled the advantage in the second half. Messi would strike again to put the final score on the board.
Both teams fielded debutants in their starting XI, as shared by their official Twitter accounts:
FC Barcelona @FCBarcelona
🔴🔵 Barça XI: 1.Ter Stegen 2.Semedo 3.Piqué 4.Rakitic 5.Sergio 8.A.Iniesta 9.Suárez 10.Messi 11.Dembélé 18.J.Alba 23.Umtiti #BarçaJuve2017-9-12 17:43:38
Juventus XI: Buffon; De Sciglio, Barzagli, Benatia, Alex Sandro; Bentancur, Pjanic, Matuidi; Douglas Costa, Higuain, Dybala #FCBJuve2017-9-12 17:50:53
One of those debutants nearly opened the scoring early, as Mattia De Sciglio drew a fantastic save from Marc-Andre ter Stegen with a strong shot from distance.
Not to be outdone, veteran stopper Gianluigi Buffon made a crucial interception, with the ball seemingly destined for Ousmane Dembele and the back of the net.
The Italian goalkeeper also kept out Luis Suarez with a reflex save, drawing this reaction from Yahoo Sport UK's Andrew Gaffney:
Andrew Gaffney @GaffneyVLC
Messi tried to Ronaldinho it under the wall, didn't work. Suárez's effort a lot more dangerous but the 102-year-old Buffon saves.2017-9-12 19:08:00
Gonzalo Higuain put Ter Stegen to work, while on the other side of the pitch, a blunder from De Sciglio gave Dembele a good look on goal, with the Frenchman firing wide.
The full-back suffered an injury shortly after, and manager Massimiliano Allegri made the shock decision to replace him with Stefano Sturaro. ItalianFootballTV did not understand:
Sturaro on for De Sciglio https://t.co/gIxpEF8upY2017-9-12 19:28:24
There was late drama in the half, as Messi finally managed to score against Buffon. The Argentinian went on a surging run before playing a quick one-two with Suarez and finishing with a clever shot.
Former England international Gary Lineker was impressed:
Gary Lineker @GaryLineker
Messi scores his first ever goal against Buffon. And it's a beauty.2017-9-12 19:35:35
Paulo Dybala nearly tied things up early in the second half after great work from Alex Sandro, but his shot flew wide of the goal.
On the other side of the pitch, Messi struck the post with a good drive, and he was unlucky the ball bounced off Buffon and away from danger.
Messi was booked shortly after, to the delight of Yahoo Sport's Leander Alphabet:
Messi gets a yellow for demanding a yellow. And that's one of the more satisfying yellows I've seen in a while.2017-9-12 19:59:11
But just minutes later, Rakitic doubled the lead after a great pass from Messi, all but ending the contest.
Allegri responded by introducing Federico Bernardeschi, but the chances kept falling to Barcelona, and Buffon had to be alert to deny Messi a second goal. Suarez also went close and perhaps should have done better with a volley.
The goal eventually came, courtesy of Messi yet again. The Juventus defence didn't make it hard on the 30-year-old, but it was a lovely finish nonetheless.
Karl Matchett noted his excellent form:
Karl Matchett @karlmatchett
Blimey. Messi again. Just unstoppable at the moment, what a start to 17/18 he has had.2017-9-12 20:12:15
Bernardeschi put Ter Stegen to work and Suarez had the ball in the net close to the final whistle, only to have the goal called back for offside.
Dybala had a shot saved and Gerard Pique appeared to block a shot off the line with his hand, but a late penalty would hardly have made a difference. Bernardeschi went close once more, and Fabrizio Caligara got a late debut for the Bianconeri, who appeared relieved when the final whistle blew.