Juve said the centre back was signed for a fee of 67 million euros, rising up by a potential 10 million euros based on performance-related bonuses.
Bayern president Herbert Hainer said in a statement: "De Ligt was a top target for us. With signings like this, the big aims that we have are achievable.
"The future face of our team is increasingly taking shape, and this transfer is an important building block in the overall concept that we're gradually putting into place. De Ligt should become a mainstay at FC Bayern."
De Ligt joined Juve in 2019 following his role in helping Ajax reach an improbable Champions League semi-final.
In Turin, he has won a Serie A title, Coppa Italia and Supercoppa in his three seasons with the club, only once finishing a campaign trophyless - last term.
De Ligt added: "I felt the genuine appreciation from the sporting management, the coach and the board right from the start, which convinced me.
"On top of that, FC Bayern is a brilliantly run club with big aims. I'm very glad that I'm now becoming part of the FC Bayern story."
The 22-year-old already has 38 caps for the Netherlands and leaves Juventus short of options in central defence, with veteran Italian defender Giorgio Chiellini (37) also having departed in the off season.
There have been big changes this close season at Bayern, with Polish striker Robert Lewandowski (33), second in their all-time scoring list, moving to Barcelona in a deal worth 45 million euros.
Senegalese forward Sadio Mane (30) has been brought in as a replacement from Liverpool, with De Ligt the latest high-profile arrival in Bavaria.