- Granit Xhaka (19')
- Pedro Gonçalves (62')
- Manuel Ugarte (118')
The tie was level on aggregate after this past Thursday's 2-2 draw in Lisbon and Granit Xhaka struck in the first half, before Pedro Goncalves scored an unbelievable goal from just past midfield to draw things level and send the match to extra time and then a shootout.
Arsenal scored a crucial first goal on 19 minutes when Gabriel Martinelli's shot was saved by Sporting keeper Antonio Adan, but the rebound fell right into Xhaka's path and he swept home with his first touch to stake the Gunners to a lead.
Despite taking the lead into the break it wasn't all good news for Arsenal, as Mikel Arteta was forced to make two injury substitutions in the first half -- Ben White coming on for Takehiro Tomiyasu on nine minutes and Rob Holding replacing William Saliba shortly after.
Play resumed at a brisk place following the intermission before the visiting fans were roared to life just past the hour mark when Goncalves dispossessed Arsenal, crossed the halfway line and sent a shot sailing over Aaron Ramsdale's head from 50 yards away to level the score.
Arteta's side appeared stunned after the long-range leveller, with Oleksandr Zinchenko gathering players at midfield before the restart as Arsenal looked to take the game to their reenergized Portuguese opposition.
"I think we did enough in some periods of the game, but for most of the game we were not at the level that we should be," Arsenal captain Martin Odegaard, who converted the first spot kick of the shootout, said after the match. "Part of the game we did well, but we didn't play our best football. It was a tight game and it could have gone both ways.
"It is a big blow to go out of this competition, it was a big goal for us. But now we have to come back stronger and make sure we finish well in the league."
Ramsdale then required attention from Arsenal's medical staff in the 72nd minute after taking a well-struck Marcus Edwards shot to the face, but the England international was able to carry on after spending a few moments on his back.
Neither team could find a go-ahead goal in regulation and the game went to extra time level at 3-3 on aggregate.
A horrible back pass from Sporting sprang Leandro Trossard on goal with only the keeper to beat, but Adan bailed out his back line and clipped the Belgian's shot before it trickled in behind him and glanced off the post to safety.
Adan made another excellent save from a goal-bound Gabriel Magalhaes header and Manuel Ugarte was sent off with a second yellow for his tackle on Bukayo Saka as the match went to the penalty spot to be decided.
Both teams were perfect from the spot until Adan saved Martinelli's spot kick and Nuno Santos hit his to send Sporting through to the final eight.
Premier League leaders Arsenal, who are five points ahead of Man City in the table, are back in action on Sunday against Crystal Palace. Sporting will await the results of Friday's Europa League draw to see who they will face in the quarterfinals.
- Antonio Miguel Mateu Lahoz