Not for the first time this season, Dortmund's profligacy came back to haunt them, with Aaron Ramsey striking against the run of play to fire the Gunners to the top of the standings.
Hugging the right-hand side, Kevin Großkreutz started the first move of promise, but after good work from Marco Reus, Robert Lewandowski was crowded out in front of goal. The hosts forged an even better opportunity after 16 minutes, with Sven Bender directing Marco Reus’ devilish free kick across goal for Neven Subotic to hook narrowly wide of the far post.
Another purposeful run from Großkreutz had the vociferous Yellow Wall on their feet, but receiving the ball at an awkward height Jakub Blaszczykowski was unable to find the target. Picking the pockets of Mikel Arteta in midfield, Reus then put on the afterburners, only to relinquish possession to Arsenal defender Per Mertesacker, who was involved moments later to deny Lewandowski from close range.
Dortmund continued to move the ball with effortless precision and really ought to have taken the lead in the 37th minute. Blaszczykowski's in-field pass found Henrikh Mkhitaryan on the edge of the area, but the Armenia international skewed wide with the goal at his mercy. Lewandowski followed suit with two minutes of the half left on the clock, turning into space and firing handsomely wide from 20 yards out.
Die Schwarz-Gelben turned the screw after the restart, with Arsenal goalkeeper Wojciech Szczesny pulling off a fine full-stretch save to keep out Reus' downward header. The BVB forward did have the ball in the net six minutes into the second half, but the linesman had already raised his flag for offside after Szczesny could only parry from Blaszczykowski.
Smash and grab
Arsenal had still to register a shot on goal, but when the chance finally came in the 62nd minute, the Gunners made it count as Olivier Giroud glanced Mesut Özil's looping cross into the path of Ramsey, who stole a yard on Subotic to head past the hitherto untested Roman Weidenfeller.
The bit between their teeth, Arsenal seized the initiative. Ramsey forced the best out of the Dortmund goalkeeper, with Nuri Sahin swiping the ensuing corner off the line and Mertesacker flicking Santi Cazorla's free kick wide of the post. Dortmund threatened only in fits and starts thereafter, but were unable to turn the tide in their favour, leaving them with a three-point deficit to make up on Arsenal and second-place SSC Napoli with two games to go.
Dortmund: Weidenfeller - Großkreutz, Sokratis, Subotic, Schmelzer - Bender Hofmann (74'), Sahin - Blaszczykowski (Aubameyang 74'), Mkhitaryan, Reus (Schieber 83') - Lewandowski
Arsenal: Szczeny - Sagna, Mertesacker, Koscielny, Gibbs - Ramsey, Rosicky (Vermaelen 89') - Arteta, Özil, Cazorla - Giroud (Bendtner 89')
Goals: 0-1 Ramsey (62')