Sevilla are through to the Europa League semi-finals after a dramatic 2-2 second leg draw at Zenit St Petersburg.
Sevilla took the lead early after Neto took down Vitolo inside the penalty area, and Carlos Bacca directed the ball into the top corner from 12 yards.
Oleg Shatov saw his shot blocked by Daniel Carrico in the 10th minute, before Hulk shot wide of the target from outside of the penalty area.
Seven minutes later, Danny drove into the Sevilla area but his shot was stopped by Beto's diving save.
Aleix Vidal then had the ball in the net for Sevilla in the 23rd minute, but his goal was disallowed after Vitolo had handled during the build-up.
Vidal then looked to have breached the Zenit defence in the 31st minute but Nicolas Lombaerts was able to make a last-ditch tackle.
Bacca had a great chance to double Sevilla's lead just before half time when he rounded Juri Lodygin, but his shot was blocked by Lombaerts.
Danny's free kick caused problems for the Sevilla defence in stoppage time, and the Portuguese struck the post a minute later.
Jose Rondon pulled a goal back for Zenit in the 48th minute, taking advantage of a goalkeeping error by Beto to finish from close range.
Hulk nearly gave Zenit the lead six minutes later but his shot from inside the penalty area went over the crossbar.
Sevilla then had two chances in the space of a minute. First, Vidal found Bacca inside the area but Neto made the block, before Coke's shot was blocked after Lodygin failed to deal with a corner.
With 67 minutes played, Rondon charged down a clearance by Beto but the ball went agonisingly wide of the post. Hulk then found space in the area but directed the ball wide of the target.
Hulk gave his team the lead on the night, and levelled the aggregate score, in the 72nd minute, with a trademark long-range effort beating Beto.
Kevin Gameiro won the tie for Sevilla in the 85th minute, guiding the ball into the bottom left corner of the net.