AC Milan lost their 19-match unbeaten run to arch-rivals Inter but hold a six-point lead at the top of Serie A.
Striker Marco Branca's sixth-minute goal condemned the Italian leaders to their first defeat since losing to Bari on October 1st, and earned Inter their fifth successive victory.
But Milan retained a comfortable cushion on top after nearest rivals Fiorentina were held to a draw at bottom of the table Bari.
Second placed Florentina needed Francesco Baiano's penalty five minutes from time to preserve a 15-match unbeaten run after Ken net Anderson volleyed Bari into a 40th-minute lead.
Juventus, beaten 1-0 by Real Madrid in their midweek European Cup quarter-final first leg, boosted their morale for the return match by fighting back from two goals down to defeat Lazio 4-2.
The result lifted Juventus into third place - their highest league position since September - thanks to Parma's surprising 2-1 defeat at Piacenza, courtesy of two goals from Nicola Caccia.