After appearing to be second best against the Nerazzurri for the majority of a tepid contest, the hosts made the breakthrough eight minutes from the end with a clinical finish from Miroslav Klose to snatch all three points.
Lazio now move level on points with Napoli in fourth, one point behind second-placed Inter, but Juventus still hold command of Serie A with a four-point lead and a game to come against Atalanta on Sunday.
The first half was certainly not one for the purists, as both sides really struggled to establish any kind of rhythm in the attacking third of the field, with a series of blocked shots punctuating their offensive contributions.
Goalmouth action was hard to come by and play frequently ground to a halt in midfield as the complete lack of tempo in the match resulted in a disappointing show for observers.
Lazio perhaps just shaded matters in the opening half, though that came with little credit as their best chance occurred when Cristian Ledesma blasted a snap-shot wide after a clearance from Andrea Ranocchia fell short.
Walter Gargano was shown a yellow card seconds before the interval for a series of fouls, and moments after the restart, he was followed into the referee’s notebook by Walter Samuel, who had upended Klose.
Inter finally sparked into life shortly after the hour mark. Fredy Guarin drilled against the post after taking aim from the edge of the area, before Diego Milito sent a speculative half-volley off target moment later.
Federico Marchetti then came to Lazio’s rescue with a stunning double save, first tipping a drive from Antonio Cassano onto the post, before recovering in time to deny Yuto Nagatomo’s rebound from point-blank range.
But the Nerazzurri’s momentum evaporated almost as quickly as it appeared, and Lazio began to create openings of their own late on. Klose spurned two good chances, one with a poor first touch when unmarked in close, and another after overrunning the ball on a great Lazio counterattack.
But at the third time of asking, Klose made no mistake, running onto a through pass from Stefano Mauri and slotting neatly into the bottom corner.
The German striker paid a price for the winner as he was forced off shortly after with an injury, but he had already made all the difference, as Inter could not muster a response in the little time that remained, giving the hosts a vital victory.
Both sides will be in action in the Coppa Italia midweek, as Inter host Serie B side Verona on Tuesday, while Lazio welcome Serie A cellar dwellers Siena the following day.