Italy winger Domenico Berardi came off the bench and converted two penalties in three minutes to inspire a 3-1 comeback win for Sassuolo over Fiorentina.
Roberto De Zerbi’s home side had proved wasteful despite dominating possession in the first half with Bartłomiej Dragowski solid in the Fiorentina goal.
Franck Ribery returned from suspension for the Tuscany team and set up Giacomo Bonaventura to blast in the opener after half an hour in Emilia-Romagna.
Gaetano Castrovilli missed a chance for a second for the visitors, hitting the post before De Zerbi made three changes at the break.
Berardi came on to spark an immediate revival earning a penalty after being brought down by Dragowski as he was clear on goal.
Berardi slotted in his 100th Sassuolo goal and then minutes later celebrated his 101st, again from the penalty spot, for a German Pezzella foul on Giacomo Raspadori.
Maxime Lopez added a third with quarter of an hour to go with Berardi missing the chance for a hat-trick sending a header wide.
Sassuolo move up to eighth, five points ahead of ninth-placed Hellas Verona, who lost 3-1 at Sampdoria.
Fiorentina are not yet clear of safety, sitting 16th, eight points off the drop zone, having taken just one point from their last four games.
Midtable Sampdoria also came from behind to inflict a fifth defeat in six games on Hellas Verona.
But Udinese ended their three-match losing run 2-1 at basement club Crotone with Rodrigo De Paul hitting a brace with goals in either half.
Nigerian Simy pulled a goal back for Crotone from the penalty spot for his 10th goal in seven straight games, bringing his tally to 17 of his side’s 34 goals this campaign.
De Paul was sent off in the 90th minute for a high kick on Salvatore Molina.
Crotone moved closer to a return to Serie B after this fifth consecutive defeat.