Alberto Aquilani scored twice and set up another goal, and Gonzalo Rodriguez and Luca Toni also found the net as Fiorentina won its fifth straight match and extended its unbeaten run to seven.
In Milan, Rodrigo Palacio put Inter ahead after 10 minutes but homegrown striker Marco Sau scored twice to push Cagliari in front before defender Davide Astori redirected a cross from Inter midfielder Ricardo Alvarez into his own net in the 82nd.
In added time, Inter argued for a penalty on defender Andrea Ranocchia and coach Andrea Stramaccioni was sent off for protests. In a sign of protest, the team did not speak with the media afterward.
Inter is four points behind league leader Juventus, which was held to a 0-0 draw by Lazio on Saturday. Fiorentina is tied with Napoli one point further back.
The top two finishers in Serie A qualify directly for the Champions League, while the third-place finisher enters the final round of playoffs.
“It's great that the fans are dreaming, but we still need to improve,” first-year Fiorentina coach Vincenzo Montella said.
“We knew Aquilani's worth, but now that he's scoring he's an added value for the club.”
In the late match, Sampdoria beat last-place Genoa 3-1 in a derby to end its seven-match losing run.
Andrea Poli put Samp ahead in the 16th, an own-goal by Genoa defender Cesare Bovo doubled the lead in the 36th, and Mauro Icari sealed the victory in the 88th after Ciro Immobile had cut the lead to 2-1 in the 73rd.
Elsewhere, there were numerous players and coaches sent off.
Ten-man Bologna beat eight-man Palermo 3-0 in a match in which four players were sent off. Alberto Gilardino opened the scoring for Bologna, Manolo Gabbiadini doubled the lead and Alessandro Diamanti sealed the win with a penalty in the 53rd.
Also, Siena beat nine-man Pescara 1-0 with a 31st-minute goal from Francesco Valiani, with Ante Vukusic missing a penalty for Pescara.
Siena coach Serse Cosmi sent off during the match and Pescara manager Giovanni Stroppa resigned afterward, with his club one point above the relegation zone.
Also, Catania beat Chievo Verona 2-1 with a double from Sergio Almiron; and Antonio Di Natale scored his eighth goal of the season for Udinese, but Raffaele Palladino equalized for Parma in the 89th for a 2-2 draw.
Fiorentina, which beat AC Milan last weekend, went ahead with a shot from center back Rodriguez that went in off the crossbar in the fifth.
After Giacomo Bonaventura equalized for Atalanta with a goal that was clearly offside in the 32nd, Aquilani restored Fiorentina's lead in the 42nd with a curving free kick over Atalanta's wall.
Atalanta's Luca Cigarini was given a debatable red card for a last-man foul on Juan Cuadrado in the 41st and Aquilani scored again shortly before halftime with a backheel, then provided the cross for Toni's header in the 49th.
At the San Siro, Palacio headed in from an Antonio Cassano cross and then Sau found the target in the 43rd and 66th as Diego Milito wasted a series of chances for Inter.
From Our Network
- IPL: 8 hottest female anchors
- 24 Ads & 100 crores: No! Hollywood has not helped Priyanka Chopra in multiplying her brand value
- 5 interesting facts about Dinesh Karthik & Dipika Pallikal's wedding
- Hrithik Roshan is travelling back in time for ‘Mohenjo Daro’. Here’s how!
- Radhika Apte was offered sex comedies after ‘Badlapur’, thinks it’s because she ‘stripped’ in the thriller