Manchester United had erased the 2-0 deficit from the first leg in Athens thanks to two goals by Robin van Persie by half-time.
The Dutchman then got his hat-trick early in the second half from a free kick.
A sad end to the night for van Persie as he was carried off injured. United win 3-0 on the night 3-2 on aggregate.
Zenit 4-2 down from the first leg against Dortmund took the lead thanks to a superb strike by Hulk.
Dortmund captain Sebastian Kehl restored the aggregate score 4 minutes later.
Zenit scored again thanks to Rondon. Not enough for Zenit. Dortmund through 5-4 on aggregate.
Get a different perspective
Every story can be told in many ways: see the perspectives from Euronews journalists in our other language teams.