The 25-year-old goalkeeper, who started for Italy in Monday's 1-1 draw with the Netherlands, has signed a four-year contract at Juventus Stadium, where veteran goalkeeper Gianluigi Buffon departed at the end of the 2017-18 season.
Perin broke through at Genoa in 2013 after loans spells at Padova and Pescara and played for the club 150 times, but he has opted to join Massimiliano Allegri's title-winning team as they hunt for an eighth consecutive Scudetto in 2018-19.
The deal will see Juventus pay €12m over a three-year period, with an additional €3m payable if certain contractual conditions are met during that time.
Perin will compete with Wojciech Szczesny to be Juventus' first-choice goalkeeper, a challenge he is looking forward to.
"I have a lot of enthusiasm, I come here on tip-toes with the utmost humility and a lot to learn, but hope I can give the team a helping hand and contribute to the cause when called upon," he told the official Juventus website.
"The club showed strong interest and when they contacted my agent, I couldn't help but say yes. These are chances that pass by only once in life and I couldn't say no to Juventus."