Sporting Lisbon beat 10-man Borussia Dortmund to reach the knockout stage of the Champions League at the expense of the German club.
Having lost the reverse fixture 1-0, Sporting needed to better that result and took control in the first half thanks to two Pedro Goncalves goals.
Emre Can was then sent-off for an off-the-ball incident with Pedro Porro.
Goncalves missed his hat-trick chance when his penalty was saved late on but Porro was quick to pounce and score.
Dortmund goalkeeper Gregor Kobel pushed Goncalves' effort away only for on-loan Manchester City player Porro to head in and complete the win nine minutes from time.
The visitors scored through Donyell Malen in added time, but it was not enough to stop them heading into the Europa League.