The Nerazzurri trailed 2-0 with a quarter of the game left to play and, despite Rafinha converting with 10 minutes to go, there was to be no coming back.
Inter remain fifth in the standings, two points adrift of Lazio who play their game in hand on Sunday afternoon, meaning that their Champions League qualification hopes may be over by the end of the weekend.
With Lazio to come on the final weekend, the hosts knew that victory would be enough to keep their fate in their own hands, but they could not overcome a Sassuolo side with little to play for.
After Alfred Duncan had sent out a warning message by shooting wide at the end of a counter, Matteo Politano rolled the ball under Inter's jumping wall to give the Neroverdi the lead with 25 minutes on the clock.
Andrea Consigli was called into action to keep out Marcelo Brozovic's powerful drive, and Domenico Beradi would have found a way through if not for an impressive Samir Handanovic save at the opposite end of the pitch.
Looking for a fourth win in five matches, Inter should have been level when Ivan Perisic somehow failed to convert when picked out unmarked from eight yards.
Then, after Berardi had an effort helped around the post and Duncan a snapshot from a similar position, Sassuolo had themselves a second.
Berardi cut inside and blasted the ball past Handanovic from the edge of the area, with that proving to be the winner as Inter could muster just one goal in response - Rafinha tucking away with a left-footed finish from 20 yards out.
Icardi did have a couple of chances, though, as did Eder, with Man of the Match Consigli denying the latter to get his side over the line for a fourth win in five matches.
INTER MILAN (4-2-3-1): Handanovic; Cancelo, Skriniar, Ranocchia (Borja Valero 76'), D'Ambrosio; Vecino (Eder 71'), Brozovic; Candreva (Karamoh 58'), Rafinha, Perisic; Icardi
SASSUOLO (3-5-2): Consigli; Lemos (Letschert 84'), Acerbi, Dell'Orco; Adjapong, Missiroli, Magnanelli, Duncan, Rogerio; Berardi (Ragusa 78'), Politano (Babacar 71')