Di Vaio strike denies Milan
In what was billed as a grudge match following Milan's UEFA Champions League win over Juventus last May the spoils were shared as Di Viao's 84th minute goal cancelled out Jon Dahl Tomasson's opener.
The kick-off was delayed for ten minutes and it was Juventus who came out of the blocks fastest with Pavel Nedved forcing Dida into a fine save down to his near post after just five minutes.
The visitors wasted a great opportunity to open the scoring two minutes later when Marco Di Vaio got clear on goal and with David Trezeguet free to his right he decided to go it alone before shooting wide much to the annoyance of his strike partner.
Milan were struggling to break down a resolute Juve defence and their only noteworthy effort was a long-range strike from Gennaro Gattuso which Gianluigi Buffon easily collected.
With tensions running high following last season's Champions League final win for Milan the game threatened to spill out of control before half time as Alessandro Tacchinardi got involved in an angry confrontation with Andrea Pirlo for failing to kick the ball out to allow attention for the injured Nedved and players from both teams got involved before the referee calmed the situation.
The game burst into life in the second half as both sides went all out for the victory to go clear at the top of the table.
Milan thought they had opened the scoring after 54 minutes when Andrei Shevchenko got clear and went round Buffon to slot home, but the Ukrainian was adjudged to be offside and the goal was ruled out.
Di Vaio came within inches of breaking the deadlock on 56 minutes with a superb volley which rattled off the post after the ball deflected up to him inside the box.
Trezeguet forced Dida into a superb sprawling save on the hour mark with a sweet shot from Nedved's left wing cross.
Milan opened the scoring against the run of play on 65 minutes with Tomasson getting on the end of Pirlo's pass inside the six-yard box before coolly slotting past the advancing Buffon despite claims for offside from Juventus.
Juventus should have drawn level three minutes later when Di Vaio found himself unmarked from Nedved's cross at the backpost, but Dida produced a flying save across his goal to keep out his header.
The visitors finally found a way past Dida six minutes from time with a superb goal from Di Vaio.
The former Parma striker linked up with Trezeguet before unleashing a brilliant left-footed volley into the top corner past a despairing Dida.
The draw ensures both sides maintain their unbeaten starts to the season and keeps them joint top of Serie A.
Lazio are right in the thick of things and moved up into third spot in Serie A with a 2-1 win away at Udinese.
Bernardo Corradi gave the visitors the lead after 17 minutes but for Vicenzo Iaquinta to draw level for the hosts ten minutes later.
Simone Inzaghi silenced the Stadio Friuli crowd on 34 minutes when he put the Roman side ahead again.
Roberto Mancini's side held firm in the second half to move into third spot in the Serie A table and keep well in touch with the title challengers.