Milan rattled the woodwork twice, but were saved by a last-gasp offside flag in their deeply disappointing 0-0 with Chievo.
The Rossoneri needed to get back on track after a 2-0 defeat to Sassuolo, but Riccardo Montolivo and M’Baye Niang were injured, then Juraj Kucka sustained a muscular problem during the warm-up, so Jeremy Menez got his first start since April 2015. Chievo missed Roberto Inglese and Alessandro Gamberini, but had Massimo Gobbi back from suspension. Sinisa Mihajlovic sat out a ban, so assistant Nenad Sakic sat on the bench.
The Flying Donkeys had not beaten Milan, home or away, for a decade since the 2-1 result in December 2005. However, the last two editions of this fixture were stalemates.
It was an aggressive start from the hosts, but Menez had two shots charged down after a mazy run. Milan were forced into another change when Gigio Donnarumma accidentally collided with Luca Antonelli on a corner and felt dizzy, so made way for 38-year-old Christian Abbiati.
The veteran goalkeeper was immediately called into action at full stretch for a one-handed low save on Antonio Floro Flores’ angled drive.
Abbiati was again forced to stick out a leg and deny Riccardo Meggiorini’s counter-attack, while Carlos Bacca wasted a Milan chance by picking the wrong pass for Menez when Jack Bonaventura was unmarked.
Keisuke Honda curled a free kick inches past the near top corner before half-time in their only genuine opportunity. Andrea Poli fired well wide on another counter and after the restart Bonaventura blasted over from a tight angle.
Valter Birsa tested his former teammate Abbiati and Bacca nodded a Honda cross on to the side-netting. Luiz Adriano made his comeback for the first time since the move to China collapsed in January.
There was an extraordinary double chance for the Rossoneri on 74 minutes, as first Ignazio Abate’s strike from a tight angle was punched on to the underside of the bar by Albano Bizzarri, then on the rebound Andrea Bertolacci hit the post unmarked from 10 yards.
Simone Pepe’s volley was charged down by Abate and his free kick landed on the roof of the net, as Chievo continued to have the better of the game.
Chievo thought they’d won it at the 90th minute when Fabrizio Cacciatore nodded in the free kick, but it was ruled offside.