Lecce's Italian midfielder Jacopo Petriccione (left) tackles Lazio's Italian forward Ciro Immobile during the Italian Serie A match
But Roma drop to sixth after falling 2-0 at Parma to end their six-match unbeaten league run.
Simone Inzaghi’s Lazio had been stunned when Scottish champions Celtic snatched a late 2-1 Europa League victory in Rome on Thursday.
But Argentine forward Joaquin Correa hit a brace either side of Sergej Milinkovic-Savic’s strike, with Serie A top-scorer Immobile slotting in a penalty against promoted Lecce at the Stadio Olimpico.
Lazio move third, level on points with Cagliari, but ahead on goal difference.
The two teams are seven points behind leaders Inter Milan, who moved top after beating Verona 2-1 on Saturday.
Defending champions Juventus are second and can reclaim the number-one spot when they host 13th-placed AC Milan later on Sunday.
Cagliari, meanwhile, can dream of a European berth after 10-man Atalanta, in fifth equal on points with Roma, were held to a goalless draw at Claudio Ranieri’s Sampdoria.
Lazio extended their winning run to four consecutive league games before the international break.
The momentum changed for promoted southerners Lecce after a Gianluca Lapadula goal was ruled out on 68 minutes.
Lapadula, who had scored for Lecce five minutes before the break, turned in a rebound after Lazio goalkeeper Thomas Strakosha had saved a Khouma Babacar penalty.
But the goal was disallowed after consultation with VAR for encroachment.
Lazio earned a penalty five minutes later which Immobile converted for his 10th goal in seven league games.
Cagliari, who battled relegation last season, have been in superb form since Radja Nainggolan returned after five years away from Sardinia, including a difficult season at Inter Milan last term.
The Belgian contributed three assists and capped a stellar performance with the fifth goal of the game on 65 minutes in a thumping 5-2 victory.
“Not even in the most optimistic forecasts could we have imagined being here,” said Cagliari coach Rolando Maran.
“Radja is capable of extraordinary things and you just have to stand back and applaud.”
Fiorentina are struggling without Franck Ribery who is serving a three-match ban for pushing an official.
Nainggolan set up Mark Rog for the opener on 17 minutes, with Fabio Pisacane nodding in the second less than ten minutes later.
The 31-year-old was involved again in Giovanni Simeone’s third goal against the Argentinian forward’s parent club, as well as Joao Pedro’s effort 10 minutes after the break, before blasting in his second goal of the campaign from distance.
He was given a standing ovation when substituted in the 78th minute.
“We are doing something extraordinary,” said Nainggolan.
Cagliari claimed a third consecutive win and are unbeaten in 10 games, which include seven victories and three draws.
“Nobody would have said at the beginning of the year that we could play so well,” said the Belgian.
“There is an enthusiasm that hasn’t been seen at Cagliari for years.”
Serbian Dusan Vlahovic pulled two late goals back for Fiorentina in the final quarter of an hour but the Tuscans sit ninth just behind Parma.
Atalanta lost ground in the league days after their 1-1 draw against Manchester City.
The Bergamo side are winless in three league games and played the last 15 minutes in Genoa a man down after Ruslan Malinovskiy was sent off for a second yellow card.
Their next game after the international break will be at home against Juventus.
Paulo Fonseca’s injury-depleted Roma also showed signs of fatigue after their Europa League defeat against Borussia Moenchengladbach.
Parma goalkeeper Luigi Sepe denied Javier Pastore, Cendiz Under, and Nicolo Zaniolo, with a Aleksandar Kolarov free kick hitting the post.
But Parma pulled through thanks to a Mattia Sprocati strike on 68 minutes and Andreas Cornelius finding a way through deep into injury time.