Penalties from Ricardo Rodriguez and Franck Kessie allowed Milan to send SPAL towards a third straight defeat.
The Rossoneri had won every match this season between Serie A and the Europa League, save for a 4-1 defeat at Lazio. Vincenzo Montella was without Andrea Conti, Riccardo Montolivo and Luca Antonelli, so reshuffled with Hakan Calhanoglu supporting Andre Silva and Nikola Kalinic. SPAL started strong, but then lost two on the bounce, missing Alex Meret, Marios Oikonomou, Sergio Floccari and Luca Rizzo.
Alberto Paloschi provided an early scare against his former club, as Alessio Romagnoli was caught in possession, but the striker was penalised for a small nudge.
Andre Silva scuffed his finish from seven yards on a Franck Kessie pull-back, then Alfred Gomis palmed an Ignazio Abate rising drive out from under the bar.
After a series of corners, Gomis parried a Ricardo Rodriguez snapshot and stretched out a hand to trip Kalinic on the rebound. Rodriguez sent the goalkeeper the wrong way for a clear penalty.
Gianluigi Donnarumma had to be alert to dive on to a loose ball from a corner after Dias Felipe’s back-heel flick.
SPAL nearly equalised on 52 minutes, as Leonardo Bonucci had to clear Federico Mattiello’s header practically off the line.
However, Milan received another penalty when Abate’s shot was deflected into the path of Kessie and he was brought down by Felipe. The former Atalanta midfielder converted the spot-kick himself.