Despite missing nine players due to injury, Dortmund maintained their perfect home record, moving up to fifth place with 16 points.
Leipzig took the lead in the 27th minute with Benjamin Sesko's goal, but Dortmund equalised shortly after through Maximilian Beier. The comeback was completed in the 65th minute with a close-range header from Serhou Guirassy.
Leipzig suffered their first league defeat of the season ahead of their Champions League match against Celtic.