Milan 3 - 1 Juventus
Seedorf 14 (M), Kaka 26 (M), Pirlo 45 (M), Trezeguet 76 (J)
Stadio Giuseppe Meazza
The title race is back on after Milan ended Juve's unbeaten run with a crushing 3-1 victory at the San Siro, cutting the gap to just two points.
The San Siro was sold out for this long-awaited title clash, as Milan hoped to get back into the title race with a seventh straight win and Juventus aimed to make history with their 10th consecutive victory. This was also a decisive tie last season, as on May 8 David Trezeguet's goal practically handed the championship to the Bianconeri.
Andriy Shevchenko was in the stands due to a heel problem that has kept him out for a week, so former Juve star Pippo Inzaghi partnered Alberto Gilardino. Alessandro Nesta returned after surgery for a ruptured tendon in his hand, while Marcos Cafu was left out in favour of the more defensively minded Jaap Stam, as Serginho was a very attacking option at left-back. Alessandro Del Piero and ex-Milan goalkeeper Christian Abbiati were left on the bench, but Zlatan Ibrahimovic and Patrick Vieira returned from injury.
Both these Coaches were facing their former clubs, as Fabio Capello won almost every trophy with the Rossoneri, while Carlo Ancelotti was fired after failing to capture the Scudetto.
Pavel Nedved's cross-shot did not trouble Dida, while Inzaghi gathered Andrea Pirlo's pass and aimed a weak effort at the near post. Gennaro Gattuso thumped the upright on nine minutes, but play had been halted for a crunching tackle on Lilian Thuram.
Ibrahimovic nearly managed to hook down a long pass forward with only Dida to beat, but even his long limbs couldn't get it under control.
However, moments later it was Milan who took the lead with a spectacular - if fortunate - goal from Clarence Seedorf. The Dutchman combined with Gilardino and his shoot took a decisive deflection off Thuram, lifting the ball over a helpless Chimenti.
The game sprung to life and there were two potential counter-attacks in quick succession for Inzaghi, Ibrahimovic and Kaka, all closed down by some desperate defending.
A furious row broke out off the ball between Gattuso and Emerson, so play had to be stopped while calm was restored. Vieira was then booked for a late challenge from behind on Kaka.
It proved an important foul, as that Pirlo free kick was dropped into the centre and not cleared effectively, so Kaka rifled in a fierce half-volley from 10 yards to beat Chimenti.
Gilardino required treatment after an accidental elbow in the jaw from Thuram, while Capello made a tactical change just before half-time, introducing Giorgio Chiellini for Gianluca Pessotto.
On the stroke of half-time, Milan took a surprise 3-0 lead thanks to a howler from Chimenti. The former Lecce goalkeeper - filling in for Gianluigi Buffon and Abbiati - completely misjudged the flight of a seemingly harmless Pirlo free kick and allowed it to squirm in at the near post.
Nesta was booked for a challenge on Chiellini on the edge of the box, but the defenders were furious as they claimed the ex-Fiorentina man had handled in the build-up.
After the break, Stam came sliding in to stop Nedved pulling the trigger just inside the area. It was a crunching tackle, but one that got the ball.
Juve were more solid, but couldn't create any real scoring opportunities and instead Milan nearly made it 4-0 with another Chimenti error. This time the 'keeper managed to push away another viciously dipping Pirlo set-piece from distance.
A Pirlo strike from the edge of the box took a deflection out for a corner, as the Rossoneri turned up the heat again and Juventus seemed to have problems clearing their lines.
Capello had to introduce a more attacking player and threw on Adrian Mutu for the quiet Mauro German Camoranesi. Nedved found space on the left of the penalty area and his shot was comfortably smothered by Dida.
A corner kick came back in from Paolo Maldini and eventually fell to Seedorf for a half-volley that went over the bar. A scuffle broke out when substitute Mutu fell on Nesta and nearly stamped on him. His team-mates were furious, as the defender had only just returned from a serious injury to his hand.
Inzaghi was halted rushing towards goal for an extremely debatable offside decision. He made way for another ex-Juve man, Christian Vieri, soon after.
Capello even introduced Alessandro Del Piero for the final 20 minutes, pushing him out wide on the left in place of Nedved. Chimenti flew to push out another Pirlo free kick and Maldini's ambitious volley from 25 metres was well over.
Ibrahimovic combined with Trezeguet only to be disposessed by Stam, but moments later Juventus got one back. The same move came back out and Trezeguet sprung the offside trap thanks to Stam's error to volley in Vieira's chipped pass over the defence.
Substitute Vieri ballooned over and Gilardino made way for Marcos Cafu for the final 10 minutes. Nesta slipped inside the area and allowed Del Piero space to cross, but Dida recovered the situation before the ball could reach Ibrahimovic.
Vieri's angled drive shaved the far post in stoppages, but he had just strayed offside and it wouldn't have counted had the finish been on target.
The last kick of the game was a splendid Del Piero volley that tested Dida on the ground, but Milan re-open the title race with a crucial victory.
Milan: Dida; Stam, Nesta, Maldini, Serginho; Gattuso, Pirlo, Seedorf (Kaladze 85); Kakà; Inzaghi (Vieri 69); Gilardino (Cafu 79)
Juventus: Chimenti; Pessotto (Chiellini 41), Thuram, Cannavaro, Zambrotta; Camoranesi (Mutu 58), Emerson, Vieira, Nedved (Del Piero 72); Trezeguet, Ibrahimovic
Ref: Bertini