The win puts them three points behind leaders Inter Milan, who won 1-0 at Genoa on Friday.
Juventus's win comes amid a crippling injury crisis, made even worse as Juve lost Giorgio Chiellini in the warm-up and Paolo De Ceglie and Jorge Martinez during the game. They ended the match with right winger Simone Pepe playing at left back and defensive midfielder Momo Sissoko at right midfield.
"We've got seven lives, we've reclaimed an important position but we can't rest on our laurels," said Juventus boss Luigi Delneri. "We're in the league to try to win but our aim is to improve from one Sunday to the next."
Milan coach Massimiliano Allegri was disappointed with the outcome. "We're talking about a game in which the result doesn't reflect the game on the pitch, but that's football. We didn't deserve to lose," he said.
Fabio Quagliarella put the Bianconeri ahead in the 24th minute and Alessandro Del Piero's record-breaking 179th goal in Serie A doubled their lead in the 66th minute. Zlatan Ibrahimovic pulled a goal back for Milan in the 82nd minute, but Juve held on to gain three crucial points to move up to fourth in the Serie A table. Ibrahimovic never scored against his former club Juventus during his time at Inter, and he seemed keen on changing that in a Milan shirt as he struck the angle of post and crossbar with a 25-yard shot in the seventh minute.
The chances were coming thick and fast for the home side in the first 10 minutes and Ibrahimovic had a shot saved before Juve finally broke out of their own half with a bit of fortune when Luca Antonini's sliding tackle in midfield saw the ball arrow into the path of Del Piero, who could not beat Christian Abbiati from a tight angle. However, Quagliarella put the visitors ahead in the 24th minute with a fine header into the top corner from Paolo De Ceglie's deep cross.
The balance of play shifted with that goal, and Juve started to pose the greater threat with some intelligent counter-attacking football which saw Del Piero and Quagliarella break together with the former forcing Abbiati into a one-handed diving save on the half-hour mark. Ibrahimovic then missed the chance to level in first-half stoppage time when he headed straight at Storari.
Felipe Melo prevented Ibrahimovic from scoring on the hour mark when he bravely headed the Swedish striker's shot away from danger. Del Piero then put his name in the history books as the all-time top goalscorer for Juventus in Serie A with his 179th strike. Mohamed Sissoko stumbled as he went clean through on goal, but he got back on his feet, defended the ball and laid it off to Del Piero, who fired it into the bottom corner from 10 yards.
The game was not over, though, as Ibrahmovic finally broke his duck against Juventus with a header similar to Quagliarella's from Antonini's cross in the 82nd minute. Milan pushed men forward in search of an equaliser, but the Juve defence held firm to preserve the three points which take them back into the hunt for the Scudetto.