The 30-year-old joined Juventus from Bari in the summer of 2020, and the centre-back has made more than 300 appearances for the Italian giants, landing six Serie A titles and three Coppa Italia crowns in the process.
Last season, Bonucci scored three times in 29 Serie A appearances for the Italian champions, but Milan have reached a deal with Juve for the transfer of the experienced Italian international.
"AC Milan have reached an agreement with Juventus FC for the permanent transfer of Leonardo Bonucci, subject to medical completion. Should the player pass the medical examination in the next few days, he will join the club penning a five-year contract," read a statement from Milan.
Backed by Chinese owners Rossoneri Sport Investment Lux, Milan have already signed Fabio Borini, Franck Kessie, Ricardo Rodriguez, Mateo Musacchio, Hakan Calhanoglu, Andrea Conti and Andre Silva in this summer's transfer window.