The Italy international turned the game on its head after Giuseppe De Luca had given Atalanta the lead when he scored his 21st and 22nd league goals of the season.
The win keeps Udinese two points clear of Lazio in the chase for the final qualifying berth for the Europa League next season, although they lost Di Natale to an injury late on.
Di Natale was named in the Udinese starting XI, despite an altercation with coach Francesco Guidolin when he was substituted in midweek.
It soon proved to be a good decision to name the top-scorer in the side as he struck the crossbar from a free-kick in the fourth minute.
Atalanta were stood watching as the ball cannoned back into play, but they did not just stand aside and let Udinese walk all over them, despite the early indications.
Instead, they more than held their own with Facundo Parra almost beating Zeljko Brkic with a backheeled effort.
The Nerazzurri then took the lead in the 10th minute with Luigi Giorgi's shot too hot for Brkic to handle and, although the Udinese goalkeeper made amends immediately by denying De Luca on the follow-up, he was unlucky to see the ball fall kindly for the Atalanta attacker, who made no mistake at the second attempt.
Maxi Moralez almost made it two with a shot just off target while Dusan Basta went close at the other end in a lively and entertaining game.
Atalanta had another chance to double their lead through Parra before Di Natale brought the hosts level just before half-time.
Allan teed up the Serie A's second-highest scorer behind Edinson Cavani, and he made no mistake to beat Andrea Consigli.
That goal was followed by a second in the 52nd minute when Di Natale again left Consigli no chance, this time from a greater distance, but with the same, typical outcome.
If Di Natale's game in midweek had ended in controversial surroundings after he had missed a penalty, the premature ending of his game caused greater concern this time.
He fell to the ground clutching his knee in the 88th minute and had to leave the field on a stretcher with Mathias Ranegie coming on for the final few minutes.
Udinese held on to the win and fifth place in Serie A, but they may now have to play their last game of the season at Inter Milan next weekend without their top goalscorer.