And Bonucci, who was joined by his agent Alessandro Lucci, is set to put pen to paper on a €10m contract at San Siro in a deal that is expected to run until 2022.
The move will be a huge coup for Milan, who only finished sixth in Italy's top flight but have still managed to convince one of Europe's top defenders to join them.
Manchester City had appeared a more realistic destination for Bonucci, although it is understood the centre-back would prefer to continue his career in Italy.
And Juve selling to their Serie A rivals will come as a blow to the club's supporters, with Bonucci having played a fundamental role in their success in recent years that has seen them win six league titles in a row.
But the defender's relationship with manager Massimiliano Allegri soured over the course of the 2016-17 season, with the pair having a heated row back in February during a 4-1 win over Palermo.
The Juve boss was overheard calling the defender a "d***head" and telling him to "f*** off", with Bonucci having reacted angrily to his boss's decision to make changes towards the end of the game.
And Milan have capitalised on the situation, with reports in Italy having claimed that the Juve man will even be given the captain's armband by Vincenzo Montella, such is his desire to land the 30-year-old.
Bonucci will become Milan's ninth signing of what has been an extremely busy summer for the club, joining the likes of Andre Silva, Franck Kessie, Fabio Borini and Andrea Conti at San Siro.