The hosts trailed 1-0 with eight minutes remaining after German Denis had put the visitors ahead in the first half.
However, substitute Juan Gomez equalised in the 82nd minute before Jorginho Frello scored the winner from the penalty spot five minutes later after Riccardo Cazzola had fouled substitute Daniele Cacia in the area.
Cazzola was shown a straight red for his late challenge as Atalanta ended the game down to 10 men.
The result is Hellas' seventh win in eight league games at the Marc' Antonio Bentegodi stadium this season and has lifted the Verona outfit to sixth place.
Atalanta, meanwhile, have dropped to 13th position as their poor record on the road continued, with the Bergamaschi having collected just three points of a possible 21 away from home.
The hosts went into the encounter looking to bounce back from Thursday's 4-1 defeat at Sampdoria in the Coppa Italia.
Hellas had the first chance in the ninth minute when Luca Toni's header from Romulo's cross was kept out by Atalanta goalkeeper Andrea Consigli.
Consigli was called into action again midway through the first half when he parried away Martinho's drive from 30 yards.
At the other end, Denis sent a warning in the 28th minute when he got past his marker and struck a left-footed shot towards the far post that forced Hellas goalkeeper Rafael to fully stretch to clear.
Atalanta went ahead in the 42nd minute when Moussa Kone fed Denis in the box and his left-footed shot beat Rafael.
The visitors almost doubled their lead before the hour mark when Denis' right-footed shot towards the far post forced Rafael to make a full-stretch save.
Hellas pressed forward more aggressively and were rewarded when Gomez's header from Romulo's corner beat Consigli.
The referee then pointed to the spot after Caccia went down in the area.
Jorginho stepped up to take the penalty and struck the ball towards the far post and out of Consigli's reach to hand his side three points.