Midfielder Sergei Milinkovic-Savic gave Lazio an early lead with his second goal of the season, and his first since September, when he snapped up a rebound after Alessio Cragno parried Joaquin Correa's shot in the 12th minute.
Defender Francesco Acerbi, who had a stoppage-time equaliser disallowed at Atalanta on Monday after the VAR spotted him fractionally offside, doubled the lead 11 minutes later, sliding the ball over the line after his first shot was stopped by Cragno.
Senad Lulic put the finishing touch to Ciro Immobile's run to add the third midway through the second half before Joao Pedro grabbed mid-table Cagliari's consolation with a stoppage- time penalty.
Lazio have 28 points and will finish the weekend in the top four if AC Milan (27) lose at home to Fiorentina later on Saturday.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
(Reporting by Brian Homewood, editing by Ed Osmond)
