Ivan Rakitic gave Barcelona a fourth-minute lead after great work from Neymar and Andres Iniesta down the left channel. Lionel Messi switched it wide, Jordi Alba laid it off to Neymar, who drew the defenders with him before slipping in Iniesta, who put it on a plate for the Croatian to sweep home.
Alvaro Morata drew Juventus level in the 55th minute with a tap-in at the far post after Marc-Andre ter Stegen could only block Carlos Tevez's shot into his path. Claudio Marchisio's brilliant backheel played in Stephan Lichtsteiner, who set up the initial chance for Tevez.
But Barcelona would not be denied and they found another goal in the 68th minute. Messi broke through the middle before beating his last defender and firing a low shot that Buffon could only parry into the path of Suarez, who made no mistake and fired into the roof of the net from close range.
Neymar thought he'd added a third just three minutes later when he headed in Alba's cross from the left, but after initial celebrations, the official on the goal-line made an excellent call to the referee to indicate that the ball had struck the Brazilian's hand after his head, thus unfairly diverting the ball past Buffon.
But Neymar eventually got his goal in the seventh minute of stoppage time when, in the last counter-attack of the game, he played a one-two with Pedro Rodriguez before slotting through Buffon's legs to make it 3-1 and cap off a memorable season in style. Barcelona win the treble of League, Cup and Champions League this season.
