Metalist, trailing 2-1 from the first leg, attacked from kick off, with Taison and Cleiton Xavier going close.
Sporting were happy to sit back and defend their lead, and it was against the run of play when Ricky van Wolfswinkel opened the scoring a minute from the end of the first half.
Metalist gave themselves some hope in the second half, when Jonathan Cristaldo levelled the score on the night in the 57th minute.
They had a chance to go level on aggregate just seven minutes later, but Xavier's penalty was saved by Rui Patricio.
It was a desperate finish in Kharkiv, but Sporting held their nerve to see off their Ukrainian opponents.
Ricardo Sa Pinto's side will face Athletic Bilbao in the last four, with the first leg to be played in Lisbon on the 19th of April.
Metalist went in search of a goal from the start, and in the fourth minute, Edmar tested Rui Patricio in the Sporting goal with a flicked header.
Eight minutes later, Cristaldo had a chance to open the scoring when he was left free in the visitor's box, only to head his effort over.
The home side were piling on the pressure, with most of their play coming through the industrious Taison, who was threatening on the flanks. Indeed, he fashioned himself a fantastic opportunity in the 32nd minute, when a neat piece of skill saw him turn his man, but he hit his shot straight at Rui Patricio.
The game was becoming scrappy, Sporting's deep defensive line proving to be the perfect foil for Metalist's attack minded setup.
The Portuguese were happy to sit back and wait for their opportunity to pounce, and in the 44th minute, they opened the scoring. Diego Capel cut inside and floated a delightful cross for van Wolfswinkel to expertly head past Alexandr Goryainov in the Metalist goal.
At the start of the second half, Kharkiv manager Miron Markevich sent on Marko Devic, and he instantly made an impression.
Cristaldo went close in the 49th minute, and it was the Argentine who got the equaliser eight minutes later.
Devic's flicked header from the edge of the box found Cristaldo, who shot past Rui Patricio.
Metalist needed just one goal to level the aggregate score and send the match into extra time, and they had the perfect opportunity to do just that when Xandao fouled Devic in the Sporting box in the 64th minute.
Captain Xavier, who had scored from the spot in the first leg, hit his penalty low, only to see Rui Patricio save with his legs.
The home side were now looking desperate, throwing men forward with very little end product.
Only Devic tested Rui Patricio again, when his shot from the edge of the box was gathered by the visiting goalkeeper.
Sporting held on to advance to the last four where they will be the only non-Spanish side.