Sassuolo's eighth win of the campaign moved them up to 16th, two points clear of Bologna. Fiorentina remain fourth but with two games remaining Vincenzo Montella's side are only six points ahead of sixth-placed Torino.

Sassuolo have been among a handful of clubs worrying about relegation to Serie B but impressed by taking the game to a Fiorentina side still smarting from a 3-1 Cup final defeat to Napoli on Saturday.

Berardi gave the visitors a 23rd minute lead, in somewhat controversial fashion, after Davide Biondini's shot came off the elbow of Borja Valero, who had tried in vain to twist away.

The referee awarded a penalty and Berardi stepped up to beat Antonio Rosati in the hosts' net.

Fiorentina came close to levelling when Alessandro Matri's header went just wide, as did Juan Cuadrado's angled drive soon after.

But barely 10 minutes later Sassuolo doubled their lead when Nicola Sansone set up Berardi to beat Rosati at the keeper's near post.

Simone Zaza then spurned the chance for a third when his long-distance rocket came off the top of the upright but Berardi claimed his hat-trick on 42 minutes when he danced around Stefan Savic to beat Rosati with a shot from a tight angle.

A brief Fiorentina fightback began just before the hour when Gonzalo Rodriguez beat Gianluca Pegolo from the penalty spot after substitute Joaquin had been tripped by Alessandro Longhi.

But Sassuolo were soon celebrating again.

Moments after Zaza had wasted a great chance, Sansone made no mistake when he danced around several players in the Fiorentina box to score off the inside of Rosati's far post.

Italy striker Giuseppe Rossi, who returned from a fourth-month injury lay-off in a 20-minute substitute appearance during the Cup defeat on Saturday, came off the bench to make his league comeback and soon had his 15th goal of the campaign after combining with Valero and Fernandez to beat Pegolo with ease.

Minutes later Cuadrado ran on to a long ball from midfield to send a lob over the onrushing Pegolo for Fiorentina's third.

Fiorentina had a number of chances to level in the dying minutes but Rossi saw an injury-time volley tipped around the post by Pegolo and although Valero sent a header into the net he was flagged offside.