Fabregas injured as Braga shock Arsenal
But the biggest blow for Arsene Wenger's side could be a new injury blow to captain Cesc Fabregas, who limped off clutching his hamstring in the second half after stretching to control a ball into the Braga penalty area.
Substitute Elton created Braga's first goal moments after coming on by supplying a delightful pass from his own half. Matheus ran into the box and put the ball over Arsenal keeper Lukasz Fabianski on 83 minutes.
Matheus' second came deep into injury time, also from a counter-attack, with the forward surrounded by three Arsenal defenders but still managing to fire in a shot that went in after hitting the bar.
Braga had conceded six goals in their group-stage debut at Arsenal in September but were much improved at home, giving the English side little room to deploy their smooth passing game.
Arsenal lost the Group H lead to Shakhtar Donetsk, 3-0 winners over bottom team Partizan Belgrade.
In a largely uneventful and low-tempo first half, clear chances were rare for either side.
AS IT HAPPENED: Our live coverage of Tuesday evening's matches
The Gunners' best opportunity came when Cesc Fabregas led a counter-attack and sent Theo Walcott racing through into the box on 35 minutes, but keeper Filipe rushed out to block the forward's shot.
Braga's finest effort came just moments later, with Brazilian striker Lima sending a powerful drive from 25 metres just wide of Arsenal keeper Fabianski's right post.
Walcott posed a danger again five minutes after halftime with a free kick that went just over the Portuguese bar.
Failing to penetrate the Arsenal box, Braga opted for long-distance efforts, but Lima's diagonal shot on 58 minutes and a powerful drive by Luis Aguiar two minutes later both went just wide.
Arsenal coach Arsene Wenger then substituted his forwards and Carlos Vela was unlucky not to have earned a penalty when he was fouled by Alberto Rodriguez in the 78th minute.