Francesco Caputo scored a quick-fire brace to pave the way for Sassuolo's first-ever Italian top-flight victory over Roma as the capital club slumped to a 4-2 loss on Saturday.
Paulo Fonseca's Roma remain fourth but their Champions League berth is now at risk with Atalanta just a point behind in fifth before they play struggling Genoa on Sunday.
"The players lost their heads," said Fonseca.
"The truth is we didn't really play in the first half. And it's impossible to win if we defend like this.
"It's difficult to explain such a difference between the game against Lazio (1-1 last weekend), I don't know why we played like this today."
Caputo scored twice within the first quarter of an hour in Emilia-Romagna, as Roberto De Zerbi's side pulled Roma apart.
Filip Djuricic slid in the third on 26 minutes.
Skipper Edin Dzeko scored his 100th Roma goal on 55 minutes, but his team were hit by Lorenzo Pellegrini's sending off for a second yellow card 14 minutes later.
A Jeremie Boga handball threw Roma a lifeline with Jordan Veretout making no mistake from the spot on 73 minutes.
But Ivorian Boga immediately made amends, cutting inside to rifle in a superb fourth goal.
Sassuolo, sitting 13th, had never beaten Roma in 13 top-flight meetings and had lost the reverse fixture 4-2 in September at the Stadio Olimpico.
It was Roma's fourth defeat this year.
"Today we were a complete team, everything went well," said De Zerbi.
"If we always play in this way this team has no limits."
- Cornelius frustrates Cagliari -
Andreas Cornelius's last-gasp header grabbed a 2-2 draw for Parma to further frustrate Cagliari in a clash between rivals for Europa League qualification.
The Danish forward nodded in a curling Jasmin Kurtic cross in the 94th minute to deny Cagliari a first league win since December 2.
The Sardinians remain sixth, in the final Europa League berth, but Parma are level on points and only behind on head-to-head record.
Both can be overtaken by in-form AC Milan, who are a point adrift before hosting Hellas Verona on Sunday.
Giovanni Simeone put the hosts 2-1 up after 53 minutes after also providing the assist for Joao Pedro's opening goal on 19 minutes at the Sardegna Arena.
But Juraj Kucka levelled for Parma just before the break with Brazilian Pedro missing a penalty in the second half.
Simeone slid to tap in Luca Pellegrini's low cross and give the hosts the advantage, but Cornelius snatched a point with his eighth league goal this season.
The Sardinians are on a run of four defeats and four draws from their last eight league outings, including last weekend's stalemate at title-chasing Inter Milan.
The European battle remains tight with Bologna two points behind in ninth after snatching a 2-1 win over rock-bottom Brescia.
Mattia Bani got the winner a minute from time to hand Sinisa Mihajlovic's side their first victory of 2020, with the Serb making a rare appearance on the bench as he undergoes cancer treatment.
Ernesto Torregrossa had put Brescia ahead from the penalty spot on 36 minutes, but Riccardo Orsolini grabbed the equaliser just before the break.
Bani slotted in his fourth goal of the season to seal a first win since December 15.
On Sunday, reigning champions Juventus face Fiorentina with second-placed Inter Milan, three points off the pace, travelling to Udinese, looking to end their run of three successive 1-1 draws.
Lazio have a chance to close the gap as they sit just five points behind Juventus and two adrift of Inter, with a game in hand, before hosting struggling SPAL.
Francesco Caputo (L) scored a brace for Sassuolo
Dzeko hit his 100th Roma goal
Cornelius (3rd R) has scored eight goals this season