By Richard Clarke at Estadio Municipal de Braga
Arsenal must now beat Partizan Belgrade in the final game of Group H in order to be sure of qualification to the Knockout Stages of the Champions League.
Arsène Wenger's side are left playing brinkmanship after they slipped to defeat at Braga on Tuesday night.
Matheus sealed Arsenal's fate. With seven minutes remaining, the Brazilan broke through and kept his nerve to steer a shot beyond Lukasz Fabianski. With the final kick of the game, he held off two challenges to add a second.
The visitors were down to 10 men at the time - Emmanuel Eboue had been stretchered off and Wenger had used all his substitutes. In addition they had just been denied a seemingly clear penalty when Carlos Vela was tripped in the area.
After that thought-provoking defeat to Tottenham on Saturday, this was the last thing Arsenal needed.
There is comfort in the fact Belgrade have lost all their Group H games but it would appear that top spot is now gone given that Shakhtar only need a point at home to Braga.
It was another tough, tough night for Wenger's men.
The manager's team selection tapped into the slate-wiping mood that had followed the weekend defeat. He made seven changes in all.
Only Fabianski, Denilson, Sebastien Squillaci and Cesc Fabregas remained from Saturday's side. Five of the seven omitted went to the bench meanwhile Gael Clichy (back) and Andrey Arshavin (rested) missed out entirely. Robin van Persie was left in London to work on his fitness.
The scene inside the Estadio Municipal de Braga was slightly surreal. This two-sided ground is carved into a quarry with a sheer rock face behind one goal and a grassy hill behind the other.
Coupled with that, the home side were playing in red shirts and white sleeves - a look taken from a former President's trip to Highbury in the 1920s. Meanwhile Arsenal were in yellow.
All very odd.
Kieran Gibbs was the main attacking threat for the visitors in the first 15 minutes. In the opening seconds he reached the left-hand byline before crossing in the hope of finding Nicklas Bendtner at the far post. Moises cleared the danger.
In the eighth minute the Braga defender would head over the bar from Luis Aguiar's free-kick.
However Gibbs was still the focus. Aguiar headed another of his crosses clear and the full back forced Braga to scramble the ball away on a number of other occasions.
In the 18th minute Bendtner and Walcott set up Fabregas, who fired a shot over the bar.
On the half-hour, the captain saw his free-kick tipped over the bar by Felipe after Leandro Salino had fouled Eboue just outside the area. From the corner, Johan Djourou steered a shot wide at the far post.
To be honest, in the first 30 minutes there had been little pace or pattern about the game. But Arsenal had owned all the urgency and invention on display.
The game would pick up as half-time approached.
There was the merest sniff of a spark when Fabregas fed the scampering Walcott with a defence-splitting pass. The England winger beat Felipe to the ball but the keeper's sliding challenge cleared the danger.
Play switched to the other end and Lima's long-range snapshot forced Fabianski to dive full-length even though the ball went wide.
Eboue fouled Matheus on the left-hand touchline and Aguiar's free-kick was headed into the side-netting by Bendtner.
Five minutes before the break, Walcott broke clear and fired a shot beyond Felipe and the far post.
Suddenly, it seemed we had a game on our hands.
In the dying seconds, Bendtner was fouled 25 yards out and Fabregas thumped the free-kick wide. It was the final act of a largely forgettable first half but one in which Arsenal had been clearly the better side.
The second period started the same way, only this time Walcott missed the target with his free-kick.
Matheus dragged a shot wide for Braga in response but, once again, the game was settling into its altogether lethargic first-half groove.
It seemed that only a piece of individual skill or, more likely, a mistake, could provide the opening goal.
On the hour, the latter scenario nearly came to pass. Alan curled in a cross from the right and Squillaci could only nod his clearance to Aguiar, who fired a low shot inches wide of Fabianski's left-hand post. In the context of this tight game it was a massive moment.
Wenger sensed the need for change and brought on Samir Nasri for Fabregas, whose hamstring injury had made him touch-and-go to start. Chamakh replaced Bendtner soon afterwards.
Arsenal were still lively. Wilshere nearly dribbled his way through the entire Braga defence and Moises slid in to stop Rosicky's right-wing cross finding Bendtner at the near post.
But as the game went into the final 15 minutes, neither keeper had made a serious save.
That should have changed in the 78th minute when substitute Vela appeared to be tripped by Alberto Rodriguez in the area. But referee Viktor Kassai booked the Arsenal striker for simulation.
It got worse for Arsenal when Eboue was carried off with an injury and Arsenal were left a man short.
And then it got worse again.
The visitors pushed for the equaliser but were caught on the break with seven minutes left when Matheus broke through and steered his shot beyond Fabianski and into the far corner.
Wenger's men looked to find a way back but Matheus added a sparkling second on the break.
It was not a fair reflection on the game but matters are conspiring against Arsenal right now.
They need to turn the tide and quickly.
- Eboue Yellow Card
- Djourou Yellow Card
- Fabregas (C) 68
- Walcott 76
- Rosicky Yellow Card
- Denilson Yellow Card
- Bendtner 73
- Nasri 68
- Vela 76 Yellow Card
- Chamakh 73
- Alberto Rodriguez
- Miguel Garcia Yellow Card
- Lima 80
- Luis Aguir 80 Yellow Card
- Leandro Salino
- Vandinho 89
- Matheus Goal! Goal!
- Hugo Viana 89
- Anibal Capela
- Elton 80
- Andreas Madrid 80