Striker Dybala beat Gianluigi Donnarumma with a powerful effort from Alex Sandro's cross midway through the second half at Juventus Stadium to secure a third-straight league victory for Massimiliano Allegri's team.
Both sides had struggled to break down the opposition's solid defences, with 16-year-old Milan goalkeeper Donnarumma denying Juve every time they went close to opening the scoring.
Milan pressed for an equaliser but could not find a way past Gianluigi Buffon as Juve leapfrogged Sinisa Mihajlovic's side into sixth place in the table.
Allegri rested Leonardo Bonucci, Juan Cuadrado and Alvaro Morata ahead of Wednesday's key Champions League game against Manchester City. Sami Khedira also failed a fitness test but Stephan Lichtsteiner, Buffon and Mario Mandzukic were passed fit.
Mihajlovic, meanwhile, was without Mario Balotelli, Jeremy Menez, Nigel de Jong, Andrea Bertolacci and Diego Lopez through injury.
The game started at a quick tempo, with Juve's Hernanes curling a shot over the bar and Milan's Juraj Kucka hitting a volley narrowly off target.
Defences were soon well on top with Buffon and Donnarumma only called into action to stop hopeful efforts from well outside the box. Buffon was marking 20 years since he made his first Serie A appearance, in stark contrast to Milan's starlet Donnarumma.
The teenager made a fantastic save shortly before half time, stretching to tip over a free kick from Hernanes that took a wicked deflection off Giacomo Bonaventura's head.
Allegri introduced Bonucci for Hernanes at the break, switching to three at the back in a bid to improve his side's fortunes. The Brazilian had been wasteful in front of goal in the first half.
Kucka had the first chance of the second half, getting above his marker to power a header wide, with Juve substitute Alex Sandro firing off target from Dybala's rapid break moments later.
On the hour mark, Paul Pogba let fly with a swerving strike from well outside the box, but the impressive Donnarumma was again equal to the effort.
The opening goal finally arrived soon after. Dybala had been Juve's brightest player and this time there was nothing Donnarumma could do to prevent the Argentina forward striking a powerful finish on the volley from Sandro's cross.
It was almost 2-0 moments later as Dybala again sprung away from the Milan defence, but Donnarumma saved his low shot at full stretch.
Milan responded strongly and Kucka went close with a volley on the turn after Alessio Cerci had beaten Sandro with ease, but the shot flew over Buffon's bar and Juve held on for a vital victory.