Roma moved within five points of Serie A leader Juventus as Mattia Destro scored his first-ever hat trick in a 3-1 win at Cagliari on Sunday.
Destro reinforced his case for a place in Italy's World Cup squad as well as bolstering Roma's title hopes ahead of Juventus' home match against relegation-threatened Livorno on Monday.
Fiorentina maintained its charge to a Europa League spot with a 2-1 win over Udinese, while Torino reignited its European hopes as Ciro Immobile moved back to the top of the goalscoring table with the winner in a 2-1 victory at Catania.
Torino is three points behind Lazio, which eased to a 2-0 win over Sampdoria, and one behind Atalanta, which fell to a 2-0 loss at home to lowly Sassuolo.
Parma hosts Napoli later, looking to move level with fifth-placed Inter.
Destro scored his first goal shortly after the half hour, firing home Gervinho's cross from close range after he had started the move.
The 23-year-old Destro doubled his tally 15 minutes into the second half, beating the offside trap to run onto a ball from on-loan Cagliari midfielder Radja Nainggolan and slot past Vlada Avramov.
Destro completed his hat trick in the 73rd, tapping in Alesandro Florenzi's cross.
Mauricio Pinilla netted a late consolation from the spot after he had been tripped by Mehdi Benatia
It was Roma's first win at Cagliari since 1995, excluding the 3-0 victory it was awarded last season when the Serie A game was postponed for safety reasons after Cagliari defied orders to play in an empty stadium. .
In Florence, Juan Cuadrado scored and earned a penalty against his former club.
Cuadrado opened the scoring in the 25th minute with a long-range effort which was deflected by Udinese defender Danilo past goalkeeper Simone Scuffet.
Danilo's luck got worse as a soft penalty was awarded against him for a nudge on Cuadrado, and Gonzalo Rodriguez converted.
Bruno Fernandes got Udinese back into the match eight minutes from time with a cross-shot which flew into the top corner.
Cuadrado should have sealed the result but his effort crashed off the crossbar.
Atalanta lost ground in the chase for a Europa League spot as it saw its club record run of six successive wins end following a double from Nicola Sansone.
Sassuolo moved three points from safety, while Atalanta was leapfrogged by Lazio.
Antonio Candreva gave Lazio the lead three minutes from halftime when he slotted home from close range after impressive work down the right flank from teenage forward Keita Balde.
Lucas Biglia was dismissed following a second booking shortly before the hour mark but Lazio doubled its advantage in the 73rd minute when Senad Lulic smashed Stefano Mauri's pullback under the bar.
At bottom club Catania, the home side needed less than two minutes to go in front through Gonzalo Bergessio.
However, Alexander Farnerud eventually levelled 11 minutes from time, before Immobile scored his 18th goal of the season.