Niang had reportedly been on the radar of Everton, but it appears that the Serie A side may have beaten the Toffees to his signature.
Milan revealed on their website that the 17-year-old Frenchman met vice-president Adriano Galliani ahead of his move, and that he just needs to pass a medical before being confirmed as a Milan player.
"Adriano Galliani flew into Milan last night and immediately went to a restaurant with new signing M'Baye Niang," read the club's official website.
"Today he will have to pass his medical."
Niang signed professional forms with Caen last season, making 23 appearances for the French side in the latest campaign.