The first leg ended 1-1 in Germany, with both teams hitting the woodwork twice and Andre Silva’s penalty parried by Juan Musso. Berat Djimsiti and Remo Freuler recovered for a change of system to 4-2-3-1, while Amadou Haidara was the only remaining Leipzig absentee, welcoming Yussuf Poulsen back to the bench.
As the away goals rule no longer applies in Europe, this became a straight winner-takes-all showdown for the semi-final.
Ruslan Malinovskyi and Davide Zappacosta stung the goalkeeper’s gloves from a tricky angle, but Leipzig broke the deadlock when Konrad Laimer was allowed to sprint down the right relatively undisturbed, pulling back for Christopher Nkunku’s tap-in from six yards.
Teun Koopmeiners blasted over, then after the restart Malinovskyi’s free kick was charged down by Dani Olmo’s arm and hand. After an on-field review, the referee decided against awarding a penalty, despite the fact he had given this free kick for a much less obvious handling offence.
Juan Musso got away with a howler moments later, as he failed to gather a loose ball in the box and was fortunate Laimer prodded wide.
Hans Hateboer came sliding in at the back post and couldn’t keep the finish down on a Zappacosta cross, while Musso used his shoulder to deny Nkunku at the near post.
Boga blasted just over the bar from distance and Duvan Zapata’s header was plucked out of the air, while another was over from a corner.
In the final minutes, just as Atalanta were pouring forward, Musso brought down Nkunku for a penalty, which the striker blasted into the top corner.
Duvan Zapata flashed a shot across the face of goal with the last kick of the game.
Atalanta 0-2 RB Leipzig (1-3 agg)
Nkunku 18, pen 87 (L)