Benatia initially moved to the Serie A champions on a temporary basis ahead of this season, and has since made 18 appearances across all competitions.
He has agreed a deal until June 2020, with the fee to be paid to Bayern over two years.
With Giorgio Chiellini, Andrea Barzagli and Leonardo Bonucci forming Juve's fearsome first-choice back three, Benatia has had to settle for a marginal role as the club fight for the treble of Serie A, Coppa Italia and Champions League.
"I'm delighted," Benatia said. "Ever since arriving here I always had plans to stay. I didn't want to return to Bayern or go anywhere else.
"This is a very positive day for me and I hope the future will be full of great moments.
"I'm happy and I hope that next season I'll have even more opportunities to play because there won't be the Aftrica Cup of Nations."
On Sunday, Benatia will face old club Roma, where a win will see Juve claim a record-breaking sixth successive Scudetto and what the Old Lady hopes will be the first leg of a remarkable treble.