Ibrahimovic, 40, is a long-term absentee for Milan after he underwent knee surgery in May and was ruled out for up to eight months.
The Sweden striker may not play again until the new year, but that has not stopped the Serie A team from offering him a new deal.
"AC Milan is pleased to announce the renewal of Zlatan Ibrahimovic's contract until June 30, 2023," Milan said in a statement. "The Swedish forward will continue to wear the No. 11 shirt."
Ibrahimovic made an unlikely return to Milan on a free transfer in December 2019 after spending two seasons in Major League Soccer with the LA Galaxy.
The 40-year-old has scored 36 goals in 74 games in his second spell at Milan and helped the San Siro club win their first Serie A title in 11 years last season.
Ibrahimovic also made a remarkable comeback for the Swedish national team last year, five years after he retired from international football. He is Sweden's record scorer, with 62 goals in 121 appearances.