Bayern Munich scored two goals in the final 20 minutes to maintain their unbeaten start to the season with a 2-1 win over a revitalised Borussia Dortmund side.
Marco Reus had given the struggling visitors a half-time lead at the Allianz Arena, but former Dortmund striker Robert Lewandowski equalised before Arjen Robben won it for Bayern with a late penalty.
Jurgen Klopp's men produced arguably their best performance of the season, but remain 16th in the Bundesliga table following a fifth successive defeat.
Having passed a late fitness test to start for the Bavarians, Robben was immediately involved as he forced Roman Weidenfeller into smartly tipping over his crossbar, and soon sliced a second effort high.
A lively opening set the tone for what was to be an end-to-end first half, and Dortmund soon threatened themselves as Henrikh Mkhitaryan ran across the Munich defence only to drag a shot narrowly wide.
Bayern were back on the attack four minutes later as Thomas Muller directed a clever Jerome Boateng dink wide on the volley, and then miscued another first-time effort into the hands of Weidenfeller.
Manuel Neuer was typically rapid off his line to thwart Pierre-Emerick Aubameyang on the half-hour mark, but Dortmund did lead less than a minute later as Reus finished off a swift counter-attacking move.
The German international midfielder, who is rumoured to be high on Bayern's list of transfer targets, made a late burst in from the left to get in front of Boateng and head Aubameyang's cross beyond Neuer.
Table-topping Munich came close to equalising prior to the break when Weidenfeller saved again from Muller, and an even more impressive intervention from Sven Bender cleared Robben's shot on the line.
Pep Guardiola's team continued to knock on the door after the restart as the increasingly-busy Weidenfeller got down well to save from Robben, and then kept himself big to block a close-range prod from Lewandowski.
The visitors were having to withstand Bayern's barrage without captain Mats Hummels, who had been withdrawn at half time through injury, and survived again as Mehdi Benatia somehow headed high from six yards.
However, they could only dodge so many bullets and the equaliser came on 70 minutes when Lewandowski, who left Dortmund to join their great rivals in the summer, struck low past Weidenfeller from 20 yards after the ball had bounced into his path off Neven Subotic.
Subotic also had an unwilling role in the winning goal as he tussled fellow substitute Franck Ribery to the ground inside the box, and Robben stepped up to beat Weidenfeller from the spot four minutes from time.