Middlesbrough failed to reach the quarter-finals of the Uefa Cup after a late goal saw them beaten in Lisbon. Boro gave a gutsy display and were the better side for long spells but their defensive shortcomings in the first leg earlier this month proved to be costly.
The visitors had chances to win the return encounter but Szilard Nemeth had a shot cleared off the line and Joseph-Desire Job fired wide.
Sporting sealed the victory when Pedro Barbosa slotted in from 12 yards.
Boro's injury-ravaged side made an encouraging start and Stewart Downing, who was at the heart of nearly all of their best moments, flashed a decent ball across the face of goal within 90 seconds.
Middlesbrough were without regular front pairing Jimmy Floyd Hasselbaink and Mark Viduka, although the replacements, Job and Nemeth, were posing plenty of problems.
But the visitors' need to chase the game left a few gaps at the back and Sporting soon settled down.
Beto curled a well-stuck 25-yard free-kick straight into the arms of a grateful Mark Schwarzer and Pedro Barbosa tested the Boro number one with another decent hit from distance.
Boro continued to look the more likely to score and they almost grabbed the lead after 15 minutes.
Job chased a long punt downfield from Schwarzer and some poor defending from Rui Jorge allowed the Cameroon striker to chase through and toe the ball away from keeper Ricardo.
With Ricardo nowhere near his goal Job stayed calm and picked out Nemeth, who turned neatly on the edge of the box only to see his low drive cleared off the line by a relieved Rui Jorge.
The pacy Rodolph Doula, who starred in Sporting's first-leg success, replaced the injured Hugo on 35 minutes and that seemed to inject a missing spark in the home attack.
Da Silva Liedson mis-kicked when well-placed and Hugo Viana blasted a shot straight at Schwarzer from 18 yards.
Boro almost grabbed the goal they so desperately craved seconds before the interval when the ever-dangerous Downing skipped past a defender on the left.
His cross was flapped away from Job by Ricardo and Stuart Parnaby was denied by Ricardo's excellent follow-up block.
Middlesbrough sensed it was not going to be their night when they missed a glorious chance five minutes after the restart.
Nemeth profited from a dreadful ball out from Ricardo but overhit the cross and Job could only slide the ball wide on the stretch.
As Middlesbrough poured forward the prospect of a killer breakaway goal increased but the visitors had little option but to go for broke.
And for all Boro's pressure, it was the home side who had the better chances in the final half-hour.
Viana went close with a vicious free-kick that was beaten away by Schwarzer in the dying moments.
And Barbosa then wrapped things up.
Doula got clear on the left and pulled the ball back to Barbosa, who found the far corner with a calm finish.
Sporting: Ricardo, Rogerio, Enakahire, Hugo (Douala 35), Rui Jorge, Beto, Viana, Joao Moutinho, Pedro Barbosa (Carlos Martins 90), Sa Pinto, Liedson (Niculae 88).
Subs Not Used: Nelson, Tello, Miguel Garcia.
Booked: Niculae.
Goals: Barbosa 90.
Middlesbrough: Schwarzer, McMahon (Graham 68), Riggott, Southgate, Queudrue, Parnaby, Zenden, Doriva (Johnson 79), Downing (Wheater 90), Job, Nemeth.
Subs Not Used: Jones, Cooper, Taylor, Kennedy.
Att: 21,217.
Ref: Eric Poulat (Rhone-Alpes).