In a first half of few chances, Milan were dealt a blow after veteran striker Zlatan Ibrahimovic picked up an injury and had to be taken off.
The hosts could not find a way through and had to settle for the draw that moved them onto 49 points from 23 games as Napoli, following their win over Salernitana earlier on Sunday, climbed above Milan into second on goal difference.
Juventus never looked like finding the net all match, but the hard-earned point stretched their unbeaten run to nine league games. They stay fifth on 42 points after 23 matches.
Victory would have moved Massimiliano Allegri's side into the top four as they look to salvage their season after their disappointing first half of the campaign, but Juve remain one point behind Atalanta in fourth.
"Tonight was a good match," Allegri told DAZN. "It was important to end January in the best possible way. We faced a good Milan and staying at this distance from them is important.
"I'm happy because the boys are playing more as a team. We must not lose team spirit. In this moment we have recovered many points, but it is one step at a time."
Inter's last-gasp victory over Venezia on Saturday put the pressure on their city rivals to keep pace, but Stefano Pioli's side, chasing a first Scudetto since 2010-11, fell further behind in the title race.
"We missed something in the penalty area," Pioli said. "We were just not very precise and decisive in the final phase.
"We have to be focused and continue like we have been doing, knowing that if we want to achieve something extraordinary we have to produce something excellent."