Marco Reus put the visitors in front against the run of play in the first half with only his second headed Bundesliga goal, but Robert Lewandowski equalised after the break before Arjen Robben's 85th-minute penalty ensured Bayern maintained their perfect home record this season.
Despite having slipped into the bottom three by the time the match started, there was no sign of a shortage of confidence among the Dortmund players as they began strongly, pressing Bayern extremely high up the pitch. Nevertheless, the hosts had the first chance of the game when a superb one-two on the edge of the box between Robben and Philipp Lahm led to the former drawing an excellent save out of Roman Weidenfeller.
It wasn’t long before the visitors hit back with a chance of their own, however. Pierre-Emerick Aubameyang’s clever movement up front dragged two defenders with him, creating space for Henrikh Mkhitaryan to surge forward and drill an effort off the right-hand post. Undeterred, Pep Guardiola’s charges surged forward again and after Thomas Müller fizzed a ball across the face of goal, he then had an acrobatic volley saved.
Yet it was the guests who broke the deadlock just after the half-hour mark when Aubameyang raced clear down the right wing and his pinpoint cross was met eight yards out by Reus, ghosting in between Medhi Benatia and Jerome Boateng, to find the bottom corner. The visiting fans erupted in celebration but Bayern’s reaction was even more furious, with Robben and Müller each going close, only for Weidenfeller to save each time and preserve BVB’s lead at the break
Bayern had a chance to draw level less than a minute into the second half after a wonderful flowing move down the right ended with Lahm feeding Robben, but the Dutchman couldn’t get enough power behind his shot to trouble Weidenfeller. The Dortmund custodian came to his side’s rescue again moments later to deny Lewandowski, who was given time to chest the ball down and shoot from ten yards out.
Bayern were relentless after the restart and pinned the visitors deep into their own half, but with Dortmund defending in numbers there was very little room for the hosts to play a decisive pass. BVB sought to catch Bayern out on the break and occasionally threatened to expose them at the back, but Boateng and David Alaba always managed to snuff out the danger.
Eventually Bayern’s pressure took its toll as Dortmund failed to clear another surging attack, with Neven Subotic, who had come on for the injured Mats Hummels, inadvertently playing the ball to Lewandowski, who struck a first-time left-footed shot into the corner past Weidenfeller for a long-overdue equaliser. Robben grabbed a late winner for the hosts from the penalty spot after Subotic brought down Franck Ribery inside the box, restoring the Bavarians’ four-point lead at the top of the table, and leaving Dortmund in the relegation zone.
Line-ups and statistics
Jonathan Stockitt reporting from the Allianz Arena