Sergej Milinkovic-Savic and Felipe Caicedo netted as Lazio came from behind to shock Juventus 3-1 at home and inflict Maurizio Sarri's first defeat as Bianconeri coach.
Juve, held 2-2 at Sassuolo last time out, took the lead through Cristiano Ronaldo but were pegged back before the break by Luiz Felipe's header in a gripping Serie A encounter.
Juan Cuadrado's red card opened the door for Lazio and they charged through it at the Stadio Olimpico on Saturday, Luis Alberto setting up Milinkovic-Savic for a superb strike to edge in front.
There was time for more drama, though, Juve goalkeeper Wojciech Szczesny saving Ciro Immobile's penalty, and Caicedo added a third deep in added time to leave Inter two points clear at the top.
Paulo Dybala almost scored an audacious opener direct from a corner, Thomas Strakosha desperately batting the ball away from his line, but Juve broke the deadlock in the 25th minute.
Dybala was involved again, feeding Ronaldo, and the Portugal forward then arrived to convert Rodrigo Bentancur's cross after playing the midfielder into space on the right wing.
Lazio responded well, Immobile missing a good chance before the hosts levelled on the stroke of half-time, Luiz Felipe rising in the box to meet Luis Alberto's superb left-wing centre.
Strakosha made amends for a huge error in the 65th minute, his loose pass presenting Dybala with a chance to shoot before the goalkeeper recovered to block, then momentum swung to the hosts.
Cuadrado was initially booked for bringing down Manuel Lazzari as he ran through on goal, but referee Michael Fabbri upgraded the yellow card to red after watching replays on pitchside monitors.
That proved a key moment as Luis Alberto combined with Milinkovic-Savic for a terrific goal in the 74th minute, with Lazio then handed a golden chance to make the points safe.
Szczesny brought down Joaquin Correa in the box, but Immobile's weak penalty was parried and the goalkeeper's reflexes brilliantly denied the Italy striker on the rebound.
That kept Juve in the hunt, and they threw everything at Lazio in the closing stages, but Caicedo scored on the counter in the 95th minute to end the Bianconeri's record as the last unbeaten team in Europe's top five leagues.
What does it mean? Juve drop points again
A haul of 36 points from 15 games would ordinarily see Juve enjoying a comfortable cushion atop the table, but Inter's superb start has put Sarri's side under huge pressure and they crumbled in the capital.
With the champions of England and Germany, Manchester City and Bayern Munich, also beaten earlier in the day, a changing of the established elite could well be happening across Europe.
Lazio, third and five points behind Inter, will consider themselves part of the title race after a seventh straight league win - their first home success over Juve in the league since 2003.
Milinkovic-Savic proves worth
Previously considered one of the most in-demand players in world football, Milinkovic-Savic's profile has slipped a little in recent months. His sublime winner will catch the attention of scouts all over the continent once more.
Immobile draws rare blank
Though he perhaps should have scored in the first half, Juve mostly succeeded in keeping Lazio's main goal threat quiet. Immobile had scored in nine straight league games, sitting well clear at the top of the Serie A scoring charts, but this was a rare off-day for the striker. He was fortunate a missed penalty did not cost his side a massive victory.
Key Opta Facts
- For the first time in their history, Lazio have won seven games in a row in the first half of a Serie A season.
- Maurizio Sarri lost his first match with Juventus in his 20th game of the season. Only three coaches oversaw more matches before their first defeat in charge of the Bianconeri in all competitions: Antonio Conte (43), Cestmir Vycpalek (26) and Didier Deschamps (21).
- Cristiano Ronaldo scored his first away goal in Serie A this season, netting on the road for the first time since last April in the competition (at Inter).
- Luis Alberto has delivered 11 Serie A assists this season. He is the fastest player to deliver his 10th league assist in a single season since Serie A went back to 20 teams (2004-05).
Juventus go to Bayer Leverkusen in the Champions League on Wednesday, though their qualification is already secured, with Lazio at Rennes in the Europa League the following day.
A suddenly reeling Juve host Udinese in Serie A next weekend, with Lazio away to Cagliari a week on Monday.