The result will pile the pressure on coach Gennaro Gattuso whose side have just six points from five games and are already 12 points off the pace of champions Juventus.
Milan took the lead after just 10 minutes when Leonardo Capezzi diverted a fierce drive by Lucas Biglia into his own goal.
Pietro Terracciano pulled off a series of fine saves to prevent Milan — who were without star striker Gonzalo Higuain through injury — from adding to their lead.
Empoli striker Francesco Caputo made Milan pay for their wastefulness when he converted a 71st-minute penalty awarded when he had been hauled down by Biglia.
Little Sassuolo continued their strong start with a 2-0 win at SPAL moving them into third place, five points behind Juve and just two back from Napoli.
Defender Claud Adjapong gave Sassuolo a 59th-minute lead before Alessandro Matri added a last-minute second just 60 seconds after coming on as a substitute.
For more news your way, download The Citizen’s app for iOS and Android.
Download our app and read this and other great stories on the move. Available for Android and iOS.