The Serie A outfit has been linked with a move for the 22-year-old throughout the January transfer window and is set to snap up the Italy international.
The two clubs reached an agreement over a deal worth 20 million euros that will be spread over five years to see the Italy international move to San Siro, as first reported by Sky Sports.
Balotelli is expected to earn 4 million euros a year on a four-year deal, a pay cut from his current 110,000 pound per week deal with Manchester City.
Balotelli's stock has fallen this season following a training ground bust-up with manager Roberto Mancini, and although he was subsequently dropped from the first team and given a reprieve by the 48-year-old, he was made available for transfer.
The former Inter Milan forward has netted just one league goal for City this season and featured in just five games since November.