Diego Simeone’s side fell behind just after the break via Dani Olmo’s flicked header, before substitute Joao Felix came off the bench to equalise from the penalty spot on 71 minutes.
However, despite gaining the momentum in the closing stages, Tyler Adams’ deflected strike two minutes from time stole a late victory for Julian Nagelsmann’s side.
Los Rojiblancos have now not progressed beyond the Champions League quarter final stage since their 2017 semi-final loss to arch rivals Real Madrid.
Leipzig will now face Paris Saint-Germain in their first ever last four appearance, after the Ligue 1 side beat Atalanta yesterday.
Barcelona take on Bundesliga champions Bayern Munich tomorrow night in the third Champions League quarter final in Lisbon.