WATCH Serie A LIVE on beIN SPORTS | via Foxtel, Kayo, Fetch & beIN SPORTS CONNECT
The 25-year-old joined Milan from Empoli in July 2019 and has made 129 appearances for the club.
He has featured in all 24 of the Rossoneri's matches this season – one of only two ever-presents along with Pierre Kalulu.
Bennacer's contract had been due to expire at the end of next season, but Milan technical director Paolo Maldini confirmed this week a new deal was close to being finalised.
Milan announced on its official website on Friday that the Algeria international is now under contract for another four and a half years.
Stefano Pioli's side, who are seven points adrift of leaders Napoli, are also hopeful of tying down Rafael Leao amid reported interest from a host of top clubs.