Gabriel Martinelli missed from the spot as Arsenal crashed out of the Europa League after a penalty shootout loss to Sporting.
A 2-2 draw in Lisbon a week ago left the last-16 tie finely poised and it would go all the way at the Emirates Stadium, Sporting advancing 5-3 on penalties following a 1-1 draw after extra-time.
The visitors were perfect from 12 yards but Martinelli’s tame effort was saved in the first ever shoot-at the Emirates.
Granit Xhaka’s first goal since October had Arsenal ahead but they failed to build on that advantage before conceding a spectacular equaliser as Pedro Goncalves struck from 49 yards out.
Substitute Leandro Trossard saw a shot turned on to the woodwork in the first half of extra-time before Manuel Ugarte was sent off, shown a second yellow for a lunge on Bukayo Saka.
The pressure ramped up in the shootout as the first seven takers all converted before Martinelli failed to do so, allowing Nuno Santos to smash home the decisive kick.
Arsenal's Martin Odegaard told BT Sport: "I think we did enough in some periods but most of the game we weren't on the level we should be. We didn't play our best football. It was a tight game in the end, it could have gone both ways.
"They are a good team, we knew that, we were prepared. It was more about us today, we didn't play the way we normally do with the same energy we normally do. Now we have to look forward.
Arsenal crash out - in pictures
:quality(70):focal(1745x804:1755x814)/cloudfront-eu-central-1.images.arcpublishing.com/thenational/JERY5HW5DB7U5FOKNNBDNGSTE4.jpg)
"We have to remember it's been a great season, it's a big blow to go out of this competition. But now we look forward to the league, that's all we can do now.
"We win and lose together. It doesn't matter. When we're winning everyone is happy, when we lose we have to pick up the spirit. We win and lose together."
Mikel Arteta named a strong XI despite fighting on two fronts, with the Premier League title race no doubt his top priority as the Gunners sit five points clear at the summit – Gabriel Jesus back in the starting line-up for the first time since returning from knee surgery.
He lost Takehiro Tomiyasu to injury with less than 10 minutes on the clock as he limped off to be replaced by Ben White.
Jesus had his first sight of the Sporting goal with 15 minutes on the clock but could not steer home a Reiss Nelson cross
Arsenal went ahead inside 20 minutes, Jorginho with a fine pass to Martinelli, whose shot was saved by Antonio Adan but Xhaka made no mistake in turning home the rebound.
While things were going well in front of goal, Arsenal lost their second player to injury within the opening quarter of the contest when William Saliba limped off and Rob Holding came on in the centre of defence.
Jesus was replaced by Trossard at half-time but Arsenal’s game was still not clicking like it has done in the Premier League of late and the tie was soon levelled in remarkable circumstances.
Sporting won the ball in midfield and Goncalves spotted Ramsdale off his line, brilliantly lobbing the England goalkeeper from just inside the Arsenal half.