Santi Cazorla missed a late penalty as Arsenal blew the chance to go top of the Premier League with a 2-1 defeat at West Brom.
James Morrison and Mikel Arteta's own goal cancelled out Olivier Giroud's first-half opener as the Gunners suffered a frustrating reverse.
Cazorla slipped and skied his spot-kick in the final 10 minutes and Mesut Ozil hit the post, but Arsenal could not recover from a nightmare five minutes despite dominating.
It was just Albion's third win in 19 Premier League games against the Gunners and their first in their last 10 meetings.
They did it, though, by scoring twice with just one shot on target as the Gunners controlled every aspect except the scoreline.
And Arsene Wenger's worries grew after he lost Francis Coquelin and Arteta -- who replaced Coquelin -- to injury.
A quiet opening was only punctuated by Boaz Myhill claiming Alexis Sanchez's free-kick while Arsenal were forced into an early change as Arteta was brought on for Coquelin.
The Gunners slowly took control but were being stifled in their attempt to cut through the Baggies' congested middle.
There was little joy for the visitors until they unlocked the hosts from the simplest of set-piece goals in the 28th minute.
Sanchez was fouled and Ozil swung in a delicious delivery for an unmarked Giroud to head in from six yards.
It should have settled Arsenal, but instead Albion hit back with two goals in five minutes.
There had been little sign of any attacking threat from the hosts but they levelled in the 35th minute when Morrison looped a 10-yard volley over Petr Cech after Chris Brunt's excellent free-kick.
Five minutes later they were ahead when Salomon Rondon and James McClean combined and Arteta was left helpless when he turned in McClean's cross from close range.
The Spanish midfielder's awful afternoon ended three minutes after the break as Arsenal's injury problems got worse and he limped off to be replaced by Mathieu Flamini.
Craig Dawson blocked from Kieran Gibbs but the visitors struggled in the face of committed Albion defending, though substitute Joel Campbell should have levelled in the 67th minute only to embarrassingly misfire.
Cazorla floated a lovely ball to the far post and McClean slipped, leaving Campbell with a clear sight from six yards but the Costa Rica international fluffed his lines and failed to hit the target.
It had been all Arsenal but Albion almost sealed the points in the 71st minute when Jonas Olsson's header struck the underside of the crossbar.
But Arsenal's pressure looked to have paid off with seven minutes left when they won a penalty after Brunt hauled down Sanchez.
It infuriated the hosts but they survived to claim victory when Cazorla slipped as he shot and looped the spot-kick over the bar.