So Juve look unstoppable in their quest for league glory, but Spain's title race is wide open again after Barcelona's second successive La Liga defeat. Thanks for your company. Goodnight from us.
Max Allegri's side came back well after going a goal down to Alex's header. Mario Mandzukic equalised before Paul Pogba bundled in the winner.
Napoli would expect to cut that gap back to six points when they host bottom club Verona tomorrow, but they're running out of games to catch Juve. Can the leaders be stopped? It looks unlikely.
- Copyright: #bbcfootball
That is a huge step towards a fifth successive Scudetto for Juventus.
Oof, they nearly did. A clearance drops to Kevin Prince Boateng on the edge of the area, and the Milan midfielder connects with a volley... but it is well wide. Two minutes of the added five to play.
Five minutes of stoppage time. Can Milan fashion anything?
Juan Cuardrado eats up a few more seconds by drawing Luca Antonelli into a foul, for which the Milan full-back is booked. All the noise at the San Siro is being made by the Juve fans. Their team are a couple of minutes away from a 21st win in 22 Serie A matches, and a nine-point title lead.
Juventus midfielder Kwadwo Asamoah is hobbling badly here, and cannot continue. Patrice Evra is on in his place for the final six minutes.
Juve have just taken the sting out of the game since they went ahead. Max Allegri's team are happy to sit deep, let Milan have the ball and to frustrate the home side. Allegri has replaced Stephan Lichtsteiner with Juan Cuadrado.
Mario Balotelli has left us too. The striker has had his moments tonight; with one assist, one brilliant free-kick well saved and one booking for punching the ball into the net. Kevin Prince Boateng is on for the final 15 minutes.
A change for Milan as Luiz Adriano replaces Keisuke Honda, after a little bit of confusion on the touchline.
It looked at first as if Manuel Locatelli, an Italy Under-19 international, was finally going to make his senior Milan debut after being an unused substitute 11 times. But as he stood on the touchline ready to come on, Sinisa Mihajlovic then changed his mind. Soon, lad, soon.
So a three-point lead for Barca at the top after earlier wins for Real and Atletico Madrid.
That's one point in nine for the defending La Liga champions.Copyright: #bbcfootball
All over. Once again Sociedad beat Barca at the Anoeta. The nightmare continues there for Barcelona.
Andres Iniesta is lurking, he can spot a goal from somewhere like no-one else can. He shoots, Geronimo Rulli saves to his left and the defence swarm over Lionel Messi as he attempts to score from the follow-up.
The keeper has been class tonight as he comes forward to take another cross. Just what you want from your stopper.
"Hit the big man". Not something you usually associate with Barcelona, but Gerard Pique is up top for the final few minutes. And his first action is to be caught offside.
Three minutes of stoppage time.
Hector Hernandez straight into the action as he runs clear and wins a corner. That will give Sociedad another 30 seconds.
Wonder what Real and Atletico Madrid are thinking watching this?
Having just hit the post with a wonderful free-kick, Paul Pogba gives Juve the lead with one of the scruffiest finishes of the season. The midfielder appears to shove Ignazio Abate in the back before chesting down Claudio Marchisio's corner. It's a neat take, but Pogba then slams the ball into the ground, and it bobbles into the far corner.
I'm not sure it is Lionel Messi's night. Once again, he has time and space to head on goal from Dani Alves' cross but it's a comfortable save by Geronimo Rulli saves to his left.
The goalscorer Mikel Oyarzabal is off and replaced by Hector Hernandez. Three minutes left plus stoppages.
Brilliant from Paul Pogba. Juve win a free-kick as Alex is booked for fouling Alvaro Morata 30 yards out. It is just left of centre, and Pogba steps up to float a beauty. Gianluigi Donnarumma is nowhere near it, but the ball thumps off the post. The leaders have ridden that spell of Milan pressure well, and are seeking to assert themselves.
Another corner for Sociedad as they crowd rises to their feet. Can they get a second. Ruben Pardo takes it, Gerard Pique heads clear but Sociedad are on the attack again. From somewhere, they have found a sure of energy.
Another change for Sociedad as the brilliant David Zurutuza is replaced by Ruben Pardo. No wonder, the hosts midfielder has been all over the pitch tonight. A sterling display.
Can Sociedad hang on? The goalscoer Mikel Oyarzabal busts a gut to win a corner to roaring cheers from the home fans. And why not?