Filippo Inzaghi's men opened the scoring early on, but the visitors fought back at San Siro and the attacker's excellent volleyed finish consigned the hosts to defeat
Heading into the game just five points off the top three and boosted by the loan capture of Alessio Cerci from Atletico Madrid, Filippo Inzaghi's Milan hoped to kick-start their push towards a potential Champions League berth in their opening Serie A match of 2015.
However, Milan were instead frustrated by a determined Sassuolo side that fought back brilliantly to claim a surprise victory.
Midfielder Andrea Poli opened the scoring in the eighth minute from close range, but the hosts were never able to take full control of the game and Nicola Sansone levelled for Eusebio Di Francesco's men shortly before the half-hour mark with a powerful low strike.
And the turnaround was completed in the 68th minute by Zaza, whose magnificent volley from a corner silenced the San Siro crowd and condemned Milan to only their fourth league defeat of the season.
Poli broke the deadlock with the first real chance of the game, his shot possessing just enough power to beat Andrea Consigli after Stephan El Shaarawy had diverted the ball into his path from Giacomo Bonaventura's low right-wing cross.
But Milan failed to assert their authority on the game following the opener and were duly punished as Sansone made it 1-1.
Domenico Berardi lifted an expertly placed ball over the top of the Milan defence for Sansone, who controlled well with his chest and lashed into the bottom-left corner.
Sassuolo continued on the front foot and then went close to going ahead in the 33rd minute, Berardi firing narrowly wide following a quick counter.
With Milan labouring in their search to try to retake the lead, Cerci was handed his Milan debut in the 65th minute as he replaced Michael Essien.
The former Torino man almost made an immediate impact as he sprang the Sassuolo offside trap, but Consigli was quickest to meet the ball forward.
From that clearance Sassuolo - not content to settle for a point - pushed forward and were rewarded in spectacular fashion by Zaza. The 23-year-old met Berardi's corner with a stunning first-time finish from 10 yards that left Milan keeper Diego Lopez with no chance.
Substitute Giampaolo Pazzini almost rescued a point for Milan in the 75th minute, only to see his superb volley acrobatically turned over the bar by Consigli.
Inzaghi's side continued to throw bodies forward in search of a late equaliser, yet Sassuolo's resolute defence hung on to ensure a win that moves them within two points of Milan and should give their players added confidence ahead of next week 's Coppa Italia tie between the two sides at San Siro.