AC Milan picked up an important victory and did their city rivals Inter a favour by beating Juventus 1-0 at the San Siro.
A Robinho penalty in the 31st minute decided the game in the Rossoneri's favour as Juve were beaten for only the second time this season.
Juve could have gone seven points clear with a win, but remain just four ahead of Fiorentina in second and Inter in third.
In the battle of Italy's two Champions League participants, the team which has already booked their place in the last 16 defeated the one who must yet follow suit with at least a draw in their last group game.
Milan appeared hungrier than Juve to begin with, or at least fresher than their opponents.
Both had 90 minutes of Champions League football during the week, yet while Milan were in a more comfortable situation for their game against Anderlecht, Juve were under immense pressure to beat Chelsea.
That seemed to take their edge away and they were unable to create even a single opening in the first 45 minutes.
Milan created only a few more, but tellingly got the ball into the penalty area more often and received their reward when a penalty was given for handball against Mauricio Isla.
Robinho took responsibility from the spot and, although Gianluigi Buffon got both hands to the ball, he was unable to keep it out.
Buffon almost gifted Stephan El Shaarawy a second early in the second half, but Andrea Barzagli spared his goalkeeper's blushes with a brave sliding tackle to send the loose ball away from the Italy international.
Juve's reaction arrived when Sebastian Giovinco came on to replace Fabio Quagliarella.
His first action was a spectacular overhead kick attempt from eight yards, but he did not make contact like Zlatan Ibrahimovic and Philippe Mexes in recent weeks with the ball flying wide.
Milan were far more defensive in the second half, yet they had a good chance to double their lead when Mario Yepes' header from a corner was saved by Buffon.
In the 83rd minute Giovinco set up Mirko Vucinic, who tried to place his shot rather than choosing power, and while he beat goalkeeper Marco Amelia he did not find a way past Kevin Constant just in front of the goal-line.
Juve pushed and pushed for an equaliser but as the rain grew in intensity, their hopes became damper and damper as the hosts held on.