The first-leg win in Russia always looked like being enough for last season's runners-up to progress, and indeed it was - but only just.
Zenit pushed forward from the first whistle and their lead was fully justified as Hulk smashed a wonderful shot past Roman Weidenfeller just 16-minutes in.
Dortmund, though, managed to get level just before the break when captain Sebastian Kehl headed home a brilliant cross from Marcel Schmelzer - although Zenit keeper Vyacheslav Malafeev got both hands to the ball and will feel he could have done better.
Zenit were given a little hope when substitute Jose Rondon stooped to head home Domenico Criscito's cross with 17 minutes left, but another two goals was just too much to ask from the Russian outfit - whose performance on the night will no doubt have pleased their in-coming coach Andre-Villas Boas, who officially takes charge on Thursday.
Instead it is Jurgen Klopp who guides his side into the last eight once again, and he will be thankful his side managed to build up a hefty first-leg advantage.
Another significant negative for Klopp was a yellow card for star striker Robert Lewandowski, ruling him out of their next match.
It should have been even easier for Dortmund, but they wasted perhaps the best chance of the night five minutes in when Pierre-Emerick Aubameyang beat his man to reach a near post cross all alone, only to head inexplicably wide.
Lewandowski then worked space on the edge of the area but failed to get any real power on his low drive.
Zenit had threatened with a decent effort from Axel Witsel, gathered at the second attempt by Weidenfeller, but when their goal came, it came out of nothing as Hulk, with his back to goal 30 yards out, spun away from his man and then hit a fierce shot into the top left-hand corner.
Dortmund were hardly stung into action, allowing Zenit to dominate possession for long periods but doing enough to prevent the Russians from creating any clear openings.
Then, attacking at almost walking pace, Dortmund scored the goal which struck at Zenit hearts, as Kehl broke into the area to connect with Schmelzer's cross, heading it down into the ground as Malafeev could only help it on its way.
Moments later, a mix-up in the Zenit defence forced Malafeev to race out and clatter into Lewandowski just outside the area, but although the Dortmund fans appealed loudly, they got no more than a throw-in.
Dortmund shut the game down in the second half as the pace slowed further.
Hulk blazed a free-kick over, but if anything it was Dortmund who looked more likely to score as they began to create chances from set-pieces and Zenit looked increasingly resigned to their fate.
With the play taking place in near slow-motion, Rondon was able to slip past the sleeping Mats Hummels to head in a second for Zenit in the 73rd minute, but other than a late, dangerous cross from Hulk which eluded his team-mates, there was no sign of a rally from the visitors.