The 27-year-old Italy international passed a medical on Friday and has now signed on for 18 months at San Siro, after failing to make an impact with the Spanish champions.
Cerci joined Diego Simeone’s side from Torino in August, but has made only nine appearances in all competitions.
The former Fiorentina man moves to Milan as part of the deal which took Fernando Torres back to his boyhood club.
Cerci trained with his new team-mates over the weekend and coach Filippo Inzaghi revealed his new recruit could be named on the bench in Tuesday’s Serie A clash with Sassuolo if the paperwork was completed in time.
Milan coach Filippo Inzaghi said in a press conference: “Cerci has unique characteristics, he has a big desire to show what he can do, he’s an international player.
“It’s now down to me to understand the best moment to play him. However, he’s very keen to play. Everyone knows Cerci’s qualities, I hope to get the best out of him.
“With him we can also often change the formation. It will be down to me to get the best out of him. If the deal goes through in time, he can already go on the bench and come on during the match.
“He has to re-find his match fitness, he’s not yet ready to play from the first minute, but 20 or 25 minutes he can play.”