"AC Milan is delighted to announce the signing of Zlatan Ibrahimovic. The club and the striker have agreed on a deal until the end of the current season with an option to extend the contract for the next one," the team said in a statement on Friday.
He will have his medical on Jan 2, 2020.
Ibrahimovic spent two seasons with Milan from 2010 to 2012, winning a Serie A title, and had long been linked with a return to the club.
However, sources told ESPN the 38-year-old needed to lower his wage demands in order to facilitate the move.
Milan director Zvonimir Boban initially cast doubt on the move due to concerns over the forward's age, but theRossonerihave now announced Ibrahimovic has joined the club.
"I'm coming back to a Club I hugely respect and to the city of Milan I love,"Ibrahimovic said in a statement released by the team. "I'll fight together with my teammates to change the course of this season. I will do everything to make it happen."
Ibrahimovic was a two-time MLS Best XI selection while helping raise the league's profile during his time in the States. He scored 30 goals and made seven assists in 29 matches this past season to finish second in the MVP voting, behind LAFC's Carlos Vela.
The former Barcelona and Manchester United player has helped his previous teams win 11 league titles in four different countries.
How Zlatan Ibrahimovic fits into a 'poor' Milan side
Shaka Hislop is puzzled by Zlatan Ibrahimovic's return to Milan and questions what the striker's role will be.
Is Zlatan back to AC Milan a PR move?
Steve Nicol cannot wrap his head around why AC Milan would want to bring back Zlatan Ibrahimovic.
Hislop: Everton need a personality like Zlatan
Shaka Hislop feels Zlatan Ibrahimovic would fit at Everton despite his advanced age and big personality.
What would Zlatan Ibrahimovic bring to AC Milan?
Stewart Robson believes Zlatan Ibrahimovic could be the answer to Milan's goal-scoring problems.