Goals from Ivan Rakitic, Luis Suarez and a last-minute strike from Neymar gave the champions of Spain their fourth European title in the past decade and fifth overall.
Alvaro Morata got Juventus’ goal in the 55th minute, setting up an enthralling second half.
In the Barcelona goal, Marc-Andre ter Stegen saved a late effort from Claudio Marchisio, pushing the ball wide of his post.
Huge celebrations down on the pitch, with Barcelona players huddled in a mass of delight.
The best possible send-off for Xavi Hernandez, who played his 151st Champions League match, and last, for Barcelona, coming on in the second half for Andres Iniesta.