The first half saw both teams exhibit a real lack of cutting edge in the final third, with chances carved out but all wasted in a game that lacked attacking quality.
The opener, which came on 70 minutes, did consist of some great skill in the build-up though, with Yuri Zhirkov dancing into the box and along the byline before dinking the ball in for Hulk to head home.
However, just minutes after making a terrific save to deny Victor Nilsson-Lindelöf, goalkeeper Juri Lodygin showed that the lack of composure was contagious from his attackers, as he flapped at Raul Jiménez's long range effort to allow Nicolás Gaitán to win the game five minutes from time.
Chances come thick and fast in opening stages
If one expected Benfica to head to Russia look to defend their narrow lead from the first leg, then their fast start to the match on Wednesday defied expectations.
Jonas, whose goal separated the two on aggregate at kick-off, came close to bagging his second of the tie, but Lodygin made a good save to tip his free-kick over the bar inside five minutes.
Zenit had an even better chance to level the tie though only two minutes later. Artem Dzyuba, who came into the match with six goals in this competition this season already, used his strength to get the better of his marker as a ball over the top fell nicely for him to strike, but he dragged the effort wide of the mark when he really should have hit the target, at the very least.
The opening stages continued in this end-to-end fashion, with Renato Sanches inches away from a lovely opener from 25 yards, whilst Dzyuba was denied brilliantly and bravely by Ederson at the other end.
Lack of quality hinders Zenit
However, these opening 25 minutes underlined just why this is a tie between two teams that anyone would happily draw in the quarter-finals - both lack composure in front of goal.
Their inability to finish chances is why we came into the second leg after a low scoring first leg - not because of heroic and organised defending - and it was the same reason why we weren't treated to a couple of goals early on in the game.
A lack of clinical finishing almost cost Benfica in their home leg, only for them to nick an advantage at the death, and Zenit were keen not to have to rely on the dramatics as they attempted to claw back the deficit. Though chances started to dry up, it was the Russians who were carving out the rare ones, with Hulk seeing a free-kick deflect just wide and Nicolas Lombaerts sending his header off target from the resulting corner.
Nonetheless, they failed to capitalise on a dominant end to the first period as we went in at the break with the game still goalless on the night, and Benfica still leading on aggregate.
Deadlock finally broken by persistent hosts
With potentially just 45 minutes left of their Champions League campaign, Zenit pushed on in the second half and started to dominate possession whilst Benfica looked for chances on the counter.
A double change just before the hour had a very positive impact for the Russians - and very quickly too.
Firstly, Igor Smolnikov was nearly on the scoresheet just seconds after entering the fray, but he couldn't make proper contact with Hulk's cross from six yards, meaning the save was easy for Ederson.
Following that, the other substitute, Oleg Shatov, carved out an even clearer opportunity for Dzyuba, but the striker again ended the move with some wayward finishing as he blazed the ball over the bar one-on-one with the 'keeper.
Benfica nearly punished Zenit for these missed chances and put the tie to bed altogether, with Jonas bearing down on goal from the left hand side. A 2-0 lead for the Portuguese would have meant the Russians needed to score three, however, the forward opted to strike from a tight angle and not to square to Kostas Mitroglou in a better position, with Lodygin able to save as a result.
This poor decision making by the visitors proved costly within minutes too, with Hulk able to level the scores on aggregate in controversial fashion. Zhirkov was the villain, seemingly fouling Nélson Semedo in the build-up, but the referee thought otherwise as the Russian danced along the byline and put the ball on a plate for Hulk to head home and equalise on aggregate.
Late turnaround sees Benfica nick it
Surprisingly, though the momentum seemed to be with the hosts, it was Benfica who looked the more likely to score the next goal and avoid extra time.
Moments after conceding, they came within fingertips of a goal as Gaitán delivered a telling corner that was met by Nilsson-Lindelöf, but his header was somehow clawed away by Lodygin to keep the tie alive.
Chances continued to come as the two desperately tried to settle the tie in the 90 minutes, with Dzyuba dancing through on goal but finding Ederson in his way.
However, it was Benfica who showed that cutting edge in the final third, whilst Zenit lacked composure as an error from goalkeeper Lodygin allowed Gaitán to nod in the winner at the death.
Substitute Jiménez was credited with the assist, but it was the hosts' shot-stopper who really gifted the goal as he flapped at the Mexican's long range effort. It was Gaitán who reacted quickest then, following up the shot miles faster than any defender as he headed into an empty net, meaning Zenit needed to score twice in the last five minutes.
If there were any doubts as we neared the final whistle, then Talisca made sure of the victory for his side when he found the bottom corner in stoppage time, cementing Benfica's place in the last eight.