Luis Muriel's individual effort after 17 minutes gave the Italian side the lead as he cut into the box and evaded two challenges before sending a powerful shot past Leipzig goalkeeper Peter Gulacsi.
The hosts improved after halftime and got their equaliser just before the hour mark. Atalanta goalkeeper Juan Musso saved Andre Silva's penalty and denied Willi Orban from the rebound but could not keep out Zappacosta's header from the resulting corner.
Both teams hit the woodwork twice and Atalanta defender Merih Demiral cleared Nordi Mukiele's shot off the goal line in stoppage time.
Leipzig travel to Bergamo for the second leg next Thursday.