Luiz Felipe, Sergej Milinkovic-Savic, and Felipe Caicedo scored for the hosts to cancel out Cristiano Ronaldo's opener in a 3-1 victory that sees Simone Inzaghi's charges creep to three points back of eight-time reigning champs Juventus with their seventh straight win.
Inter maintain the top spot in Serie A on 38 points, while Juventus sit second on 36 through 15 matches.
Ronaldo gave Juventus an advantage in the 25th minute when the Portuguese star tapped home Rodrigo Bentancur's pass across the face of goal.
Not much else went right for Maurizio Sarri's men in the Eternal City.
Felipe's goal on the stroke of the half gave Lazio hope heading into the break, and they started the second stanza on the front foot. The Brazilian defender beat Alex Sandro to an incisive cross from Luis Alberto and thumped a robust header into the top corner.
Alberto was particularly influential on the day, and Lazio turned up the pressure after the break.
It was all Lazio from there. Milinkovic-Savic gave the hosts the lead when the towering Serbian midfielder ran off the shoulder of Matthijs de Ligt before deftly corralling Alberto's long ball over the top and firing beyond a helpless Wojciech Szczesny.
It could've been worse for Juventus were it not for Szczesny. The Polish 'keeper stopped Ciro Immobile's penalty minutes after Milinkovic-Savic's goal and parried aside the rebound from Serie A's leading scorer.
Late substitute Caicedo cemented a massive victory in the 95th minute when the Ecuadorian capped off a swift three-on-one break by burying Lazzari's rebound following another acrobatic save from Szczesny.