Filippo Inzaghi's men opened the scoring early on, but the visiting side fought back at San Siro and the attacker's excellent volleyed finish consigned the host 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 the push towards a potential Champions League berth in the club's opening Serie A match of 2015.
However, Milan was 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 home side was never able to take full control of the game and Nicola Sansone leveled for Eusebio Di Francesco's men shortly before the half-hour mark with a powerful low strike.
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 its 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 its authority on the game following the opener and was duly punished as Sansone made it 1-1.
Domenico Berardi lifted an expertly placed ball over the top of the Milan defense 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 laboring in the search to try to retake the lead, Cerci was handed his 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 was 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 equalizer, yet Sassuolo's resolute defense hung on to ensure a win that moves the club within two points of Milan and should give the players added confidence ahead of next week 's Coppa Italia tie between the two sides at San Siro.