The 30-year-old will sign a five-year deal after undergoing a medical in the next few days and could become Serie A's highest-paid player with a €7.5m annual contract. Juventus confirmed the transfer fee of €42 million and revealed that the amount will be paid over three years by Milan. The Italian could also be appointed as the new club captain, replacing Riccardo Montolivo.
The Italian defender was linked with a move to the Premier League last summer, with Chelsea and Manchester City linked, however, he opted to remain in Juventus. But the relationship between him and Juventus manager Allegri went sour over the months in Turin after they had a row on the touchline during a game against Palermo in February. The Juventus boss even left him out of the squad for the following match against Porto in the Champions League.
Although the duo later held clear talks and he was brought back into the first team. However, it is now believed that the relations between the club and player became worse over the course of the time and the player himself pushed for the move.
Bonucci joined Juventus in 2010 and has won six Serie A titles with Juventus in the past six seasons. He has also guided them to two Champions League finals in that period however lost both against Barcelona in 2015 and against Real Madrid last month. He also has a league title with Milan's city rivals Inter in 2006.
The 30-year-old became the 8th big signing of the newly rejuvenated Milan side who already have spent more than £100m on new players, including Andre Silva, Ricardo Rodriguez, Hakan Calhanoglu, Andrea Conti, Frank Kessie, Fabio Borini and Mateo Musacchio.
The Italian giants also ensured goalkeeper Gianluigi Donnarumma's stay at the club after giving him a new contract and also has reportedly closed the deal of Lucas Biglia from Lazio.