Published: 2018-12-26 22:52:41 BdST
Juve, who dropped their first away points of the season, were down to 10 men at one of Serie A's toughest venues when Ronaldo nodded home from close range in the 78th minute.
The Turin side thought they had snatched a win when Leonardo Bonucci volleyed home from a free kick in stoppage time but it was ruled out for offside.
Juventus, with 16 wins and two draws from 18 games, have 50 points, nine ahead of Napoli who travel to Inter Milan later on Wednesday. Atalanta are eighth with 25 points.
Atalanta defender Berat Djimsiti miscued and sent an innocuous Alex Sandro cross into his own net to put Juventus ahead in the second minute before two goals from Duvan Zapata turned the game around.
The Colombian, scorer of Atalanta's last eight goals, collected Alejandro Gomez's pass with his back to goal and turned easily past Bonucci before firing a low shot past Wojciech Szczesny in the 24th minute.
Juventus midfielder Rodrigo Bentancur was sent off for a second bookable offence in the 53rd minute and Zapata headed Atalanta in front from a corner three minutes later.
Ronaldo, left out of the starting line-up for a Serie A game for the first time since his move from Real Madrid, came to the rescue with his 12th league goal of the season.
A corner was floated to the far post, Mario Mandzukic headed it back into the middle and Ronaldo nodded home.