Champions Juve will pay €40 million (£36m/$47m) for the Italy international, with the fee to be paid in installments over the next three years.
Bernardeschi signed a five-year contract after completing a medical on Monday.
Fiorentina will receive 10 per cent of the fee, up to a maximum of €5m, should Juve sell Bernardeschi in future.
Bernardeschi's exit had been expected after the 23-year-old rejected a new contract offer from Fiorentina.
Speculation of an imminent move intensified after he pulled out of a Fiorentina training camp last week, complaining of what the club called "acute gastroenteritis".
The winger, who scored 11 goals in Serie A for La Viola last season and had previously been linked with Inter, Manchester United and Chelsea, will add to Massimiliano Allegri's attacking options after the loan signing of Douglas Costa from Bayern Munich.
Juve have also brought in Juan Cuadrado and Medhi Benatia on a permanent basis after successful loans, while goalkeeper Wojciech Szczesny and full-back Mattia De Sciglio have arrived from Arsenal and AC Milan respectively.