The 21-year-old winger featured for Croatia at Euro 2016, where they reached the last 16 before being knocked out of the tournament by eventual champions Portugal following a 1-0 defeat.
Pjaca was subsequently linked with a move to Italy and Juve have won the race for his signature amid reported interest from domestic rivals AC Milan and Internazionale.
The Croatia international joins the Bianconeri for €23 million and becomes their fourth off-season acquisition, following Miralem Pjanic, Medhi Benatia and Dani Alves to the Juventus Stadium.
"Juventus Football Club can today confirm that Marko Pjaca has completed a permanent switch from Dinamo Zagreb for a fee of €23 million, to be paid over two financial years," a statement on the club's official website read.
"The 21-year-old has signed a five-year contract with the club."