Krzysztof Piatek scored what was to prove the winner. His 19th league goal moved him level at the top of the goalscoring chart with Juventus forward Cristiano Ronaldo and Sampdoria’s Fabio Quagliarella.
Milan consolidated third place, four points ahead of Inter, which hosts Spal on Sunday. The top four from Serie A qualify for the Champions League next season.
Chievo remained bottom of the table, 12 points from safety.
Lucas Biglia, back from a lengthy injury layoff, marked his first start since October by curling a magnificent free kick into the top left corner in the first half.
It was only the third league goal Milan has conceded in 2019.
Piatek has scored seven goals for Milan since his move from Genoa, and the eighth arrived in the 57th following a chaotic and somewhat controversial move.
Piatek attempted an overhead kick after his initial effort was saved by Stefano Sorrentino but ended up kicking a Chievo player instead. The move continued and Samu Castillejo headed the ball back into the area for Piatek to volley home.
The Chievo players protested but the goal was allowed to stand after a check with the video assistant referee.
The only negative note for Milan was coach Gennaro Gattuso was sent to the stands in the first half for dissent.
There was also controversy in the earlier match which saw Parma beat Genoa 1-0.
The only goal came from a Parma corner which shouldn’t have been as the team’s forward, Roberto Inglese, made the final touch.
From that corner, Juraj Kucka’s header was fingertipped onto the bar by former Chapecoense goalkeeper Jandrei, who was making his Serie A debut. Luca Rigoni fired the rebound onto the post from point-blank range but former Genoa forward Kucka turned it in at the third time of asking.
Parma moved three points above Genoa in midtable.