Match ends, FC Bayern München 2, Borussia Dortmund 1.
Bundesliga leaders Bayern Munich recovered from going a goal down to beat Borussia Dortmund and maintain their unbeaten start to the season.
Jurgen Klopp's side went ahead when Marco Reus, who has been linked with a move to Bayern, headed into the net.
But ex-Dortmund striker Robert Lewandowski equalised with a powerful finish from the edge of the area.
Arjen Robben converted an 85th-minute penalty to win it for Bayern following Neven Subotic's foul on Ribery.
The result means Dortmund, Bundesliga champions in 2011 and 2012 and runners-up in the last two seasons, have only taken one point from their last seven league matches.
They are now 16th in the table - in one of the relegation places - and with only seven points from their first 10 domestic games it is their worst start to a league season in the club's history.
The Germany midfielder showed his quality to put his current side ahead in the 31st minute when he headed home a precise Pierre-Emerick Aubameyang cross.
Dortmund, who last won a league match on 13 September, had goalkeeper Roman Weidenfeller to thank with a number of fine saves to frustrate the hosts.
But Bayern finally equalised with 18 minutes left as Lewandowski snapped up a loose ball on the edge of the area and drove his shot inside the far post.
Then with only five minutes remaining Robben scored from the penalty spot - his sixth goal in his last six games against Dortmund - to maintain Bayern's four-point lead at the top of the Bundesliga.
- 19GötzeSubstituted forRibéryat 70'minutes
- 3AlonsoBooked at 36mins
- 25MüllerSubstituted forPizarroat 81'minutes
- 9LewandowskiSubstituted forRodeat 88'minutes
- 4Costa Santos
- 13Ferreira de Souza
- 26PiszczekBooked at 62mins
- 15HummelsSubstituted forSuboticat 45'minutesBooked at 85mins
- 7KagawaSubstituted forGroßkreutzat 71'minutes
- 17AubameyangSubstituted forRamosat 81'minutes
- Manuel Gräfe
- Shots on Target
Second Half ends, FC Bayern München 2, Borussia Dortmund 1.
Offside, Borussia Dortmund. Sebastian Kehl tries a through ball, but Sokratis is caught offside.
Foul by Arjen Robben (FC Bayern München).
Sokratis (Borussia Dortmund) wins a free kick on the left wing.
Corner, Borussia Dortmund. Conceded by Jerome Boateng.
Foul by Jerome Boateng (FC Bayern München).
Adrián Ramos (Borussia Dortmund) wins a free kick in the attacking half.
Substitution, FC Bayern München. Sebastian Rode replaces Robert Lewandowski.
Attempt missed. Erik Durm (Borussia Dortmund) right footed shot from outside the box misses to the right.
Goal! FC Bayern München 2, Borussia Dortmund 1. Arjen Robben (FC Bayern München) converts the penalty with a left footed shot to the bottom left corner.
Neven Subotic (Borussia Dortmund) is shown the yellow card for a bad foul.
Penalty FC Bayern München. Franck Ribéry draws a foul in the penalty area.
Penalty conceded by Neven Subotic (Borussia Dortmund) after a foul in the penalty area.
Attempt saved. Claudio Pizarro (FC Bayern München) right footed shot from the left side of the box is saved in the centre of the goal. Assisted by Franck Ribéry.
Offside, Borussia Dortmund. Erik Durm tries a through ball, but Kevin Großkreutz is caught offside.
Substitution, Borussia Dortmund. Adrián Ramos replaces Pierre-Emerick Aubameyang.
Substitution, FC Bayern München. Claudio Pizarro replaces Thomas Müller.
Attempt saved. Thomas Müller (FC Bayern München) right footed shot from a difficult angle and long range on the right is saved in the centre of the goal. Assisted by Juan Bernat.
Goal! FC Bayern München 1, Borussia Dortmund 1. Robert Lewandowski (FC Bayern München) left footed shot from outside the box to the bottom right corner.