Juventus announced the move Friday, saying it will pay Genoa a 12 million euro ($14 million) transfer fee plus another 3 million euros in eventual bonuses.
The 25-year-old Perin has spent most of his career at Genoa besides a couple loan spells and is also a member of Italy's national team.
Buffon recently left Juventus after 16 seasons with the Turin club, which has won a record seven straight Serie A titles.
Perin, who signed a four-year contract, will compete with Wojciech Szczesny for the starting job.
Over the last five seasons in Serie A, Perin tied for second with AC Milan's Gianluigi Donnarumma for percentage of shots saved (73 percent) behind only Buffon (78 percent). Perin also kept 12 clean sheets last season.