Premier League: Stoke 3 Arsenal 2
Mark Hughes' men appeared to be cruising to maximum points after three first-half goals seemingly put Stoke in complete command.
Peter Crouch opened the scoring after just 19 seconds before Bojan Krkic and Jonathan Walters both netted to leave Arsene Wenger's men facing an embarrassing defeat.
However, a disallowed Bojan effort turned the game in favour of Arsenal, who pulled one back courtesy of Santi Cazorla's 68th-minute penalty.
Aaron Ramsey then made it 3-2 two minutes later with a stunning volley to set up a grandstand finish.
But the dismissal of defender Calum Chambers left Arsenal with too much of a mountain to climb, as Stoke held on to leave Wenger's men still waiting for a first win at the Britannia Stadium since February 2010.
Stoke made the dream start as Crouch - restored to the starting XI as part of three changes made by Hughes - capitalised on Arsenal's failure to deal with Steven N'Zonzi's right-wing cross to slot home from six yards.
Arsenal should have levelled in the 10th minute as teenage right-back Hector Bellerin teed up Olivier Giroud with a cross from the right, but the France striker could only head wide at the far post.
Argentinian goalkeeper Emiliano Martinez pulled off a superb diving stop down to his left to keep out Mame Biram Diouf's diving header after a Bojan free-kick had been flicked into the Senegal international's path by Walters.
But Arsenal failed to heed the warning signs and were made to pay as Walters linked up with Bojan again in the 32nd minute to double Stoke's lead.
The Republic of Ireland international whipped in a superb right-wing delivery and Bojan stole in ahead of an Arsenal defence that failed to react to turn the ball beyond Martinez.
Walters was at the heart of almost every Stoke attack and got his reward for a typically industrious display on the stroke of half-time.
Crouch rose highest to meet Bojan's corner, with his deflected header falling to Walters to lash home at the far post.
Hughes' men were fortunate to see their three-goal advantage preserved in the 56th minute when Arsenal forward Alexis Sanchez raced through the Stoke defence and rounded Asmir Begovic, only to strike the post with the net at his mercy.
Stoke defender Marc Muniesa limped off in the 62nd minute, but the hosts looked to have made sure of the points three minutes later as Bojan found the net for a second time.
However, referee Anthony Taylor disallowed the goal as Diouf was ruled to have interfered with play from an offside position.
And Diouf was soon at fault again, the former Hannover man conceding a penalty after being adjudged to have brought down Mathieu Flamini.
Cazorla coolly slotted the ball into the bottom-right corner and Ramsey then cut the deficit further as he brilliantly fired in from Alexis' corner after Danny Welbeck had been denied with a one-on-one save from Begovic.
Arsenal's task was made harder when Chambers was shown a second yellow for pulling back Bojan 12 minutes from time and, although Cazorla tested Begovic from range, the London club never came close to finding a crucial third goal.