- Ángel Di María (25' Pen)
- Arkadiusz Milik (34')
- Danilo (65')
- Ademola Lookman (4', 53')
- Joakim Maehle (46')
Massimiliano Allegri's side were playing their first match since being docked 15 points on Friday by an Italian soccer court investigating the club's transfer dealings, leaving the former third-placed club marooned in mid-table.
Sunday's result left Juventus in ninth place with 23 points, while Atalanta are fifth with 35 points.
- Explaining Juventus mess: What they did wrong and what it means
- Stream on ESPN+: LaLiga, Bundesliga, more (U.S.)
"We have to keep doing our work, which is on the pitch. We must thank the players for what they did this evening, because I realise it is psychologically damaging to see yourself go from second or third place into 10th, it feels like having what you achieved taken away," Allegri said to DAZN.
"The players and the staff who worked around them are to be congratulated."
Atalanta started the match strongly, having scored 13 goals in their last two games in all competitions, and severely tested the Juventus defence.
"If you come to Turin just to defend, you will probably lose on a penalty or free kick. I always believe you need to score goals in these games or you don't get a result," Atalanta coach Gian Piero Gasperini said to DAZN.
The hosts equalised in the 25th minute when Angel Di Maria converted a penalty given for a foul on Nicolo Fagioli by Ederson. Arkadiusz Milik completed the comeback with a volley inside the box from Fagioli's cross less than 10 minutes later.
Atalanta needed eight minutes of the second half to retake the lead, with Joakim Maehle equalising 35 seconds after the restart before Lookman headed in his second of the night in the 53rd minute.
Danilo equalised for Juventus in the 65th minute with a well-placed low free kick.
- Livio Marinelli