The Turkey international recently opened talks with the Serie A club over a summer move, having seen his career left in limbo over the past five months due to a FIFA ban for a breach of contract at former side Trabzonspor.
An agreement between the two teams now appears to have been reached, with Calhanoglu - who waived his wages during his time on the sidelines - expected to undergo fitness tests over the next 24 hours or so.
"I am on my way to sign the contract in Milan. I want to thank Bayer Leverkusen, the directors and the fans for three fantastic years," he told German outlet Bild, before posting a snap on his personal Instagram account.
Calhanoglu will likely set Milan back around £17m, becoming their sixth signing of the summer so far.