United won the reverse fixture 5-0 in October and only needed a point on Tuesday to advance from a tight Group H but found themselves two goals down inside 13 minutes.
Manchester City loanee Angelino fired in an early opener for Leipzig and then set up Amadou Haidara as the hosts took apart United’s five-man defence with ease.
Justin Kluivert added a third but Bruno Fernandes’ penalty and substitute Paul Pogba’s header 135 seconds later gave the visitors hope.
But last season’s semi-finalists Leipzig held on to move a point above their opponents and progress, with Paris Saint-Germain – whose game with Istanbul Basaksehir was halted due to allegations of racist remarks by the fourth official – also now set to qualify.
⏰ 2' Angeliño
⏰ 13' Haidara
⏰ 69' Kluivert
⏰ 80' Bruno Fernandes
⏰ 82' Pogba
— UEFA Champions League (@ChampionsLeague) December 8, 2020