Match ends, VfL Wolfsburg 1, Borussia Dortmund 2.
Borussia Dortmund cut Bayern Munich's Bundesliga lead to five points as Shinji Kagawa swept in a 93rd-minute winner at Wolfsburg.
Kagawa turned home Henrik Mkhitaryan's volleyed pass to end their opponents' 29-match unbeaten home league run.
It came just after Ricardo Rodriguez's penalty equaliser for Wolfsburg, who face Manchester United in a key Champions League match on Tuesday.
Marco Reus' calm finish had given Dortmund a first-half lead.
The midfielder went round keeper Diego Benaglio to score in the 32nd minute after Mhkitaryan had dispossessed Josuha Guilavogui to send him clear.
That came after Ilkay Gundogan and Sven Bender had both hit the bar for the visitors.
Wolfsburg - who will qualify for the Champions League knockout stages with a draw against United on Tuesday - were the better side in the second half.
They forced Dortmund keeper Roman Burki to make four fine saves to deny Bas Dost, Vieirinha, Julian Draxler and Rodriguez.
Just when it seemed as though Dortmund would escape without conceding a goal, they gave away a penalty as Andre Schurrle tumbled over Tomasz Piszczek's challenge.
Rodriguez, returning to the Wolfsburg side after taking compassionate leave following the recent death of his mother, drove the penalty into the corner in the first minute of stoppage time.
Yet there was still time for Kagawa to score an even later goal, ensuring that Thomas Tuchel's side, second in the Bundesliga, were able to move closer to top spot after Bayern lost 3-1 at Borussia Monchengladbach earlier in the day.
- 8Vieira de FreitasBooked at 54mins
- 7CaligiuriSubstituted forTräschat 57'minutesBooked at 81mins
- 23GuilavoguiSubstituted forDostat 45'minutes
- 27ArnoldBooked at 46mins
- 26PiszczekBooked at 90mins
- 8GündoganSubstituted forKagawaat 55'minutes
- 27CastroSubstituted forHofmannat 82'minutes
- 17AubameyangSubstituted forPark Joo-Hoat 82'minutes
- 11ReusBooked at 44mins
- 3Park Joo-Ho
- Tobias Stieler
- Shots on Target
Second Half ends, VfL Wolfsburg 1, Borussia Dortmund 2.
Goal! VfL Wolfsburg 1, Borussia Dortmund 2. Shinji Kagawa (Borussia Dortmund) left footed shot from the centre of the box to the bottom right corner. Assisted by Henrikh Mkhitaryan.
Goal! VfL Wolfsburg 1, Borussia Dortmund 1. Ricardo Rodríguez (VfL Wolfsburg) converts the penalty with a left footed shot to the bottom right corner.
Lukasz Piszczek (Borussia Dortmund) is shown the yellow card for a bad foul.
Penalty VfL Wolfsburg. André Schürrle draws a foul in the penalty area.
Penalty conceded by Lukasz Piszczek (Borussia Dortmund) after a foul in the penalty area.
Corner, Borussia Dortmund. Conceded by Naldo.
Attempt missed. Naldo (VfL Wolfsburg) right footed shot from more than 35 yards is too high. Assisted by Maximilian Arnold.
Substitution, Borussia Dortmund. Jonas Hofmann replaces Gonzalo Castro.
Substitution, Borussia Dortmund. Joo-Ho Park replaces Pierre-Emerick Aubameyang.
Christian Träsch (VfL Wolfsburg) is shown the yellow card for a bad foul.
Foul by Christian Träsch (VfL Wolfsburg).
Marcel Schmelzer (Borussia Dortmund) wins a free kick in the defensive half.
Attempt blocked. Julian Draxler (VfL Wolfsburg) left footed shot from outside the box is blocked.
Attempt blocked. Vieirinha (VfL Wolfsburg) header from the left side of the box is blocked. Assisted by Christian Träsch with a cross.
Attempt missed. Pierre-Emerick Aubameyang (Borussia Dortmund) left footed shot from the centre of the box is close, but misses the top left corner. Assisted by Henrikh Mkhitaryan with a cross.
Foul by Julian Draxler (VfL Wolfsburg).
Lukasz Piszczek (Borussia Dortmund) wins a free kick in the defensive half.
Corner, VfL Wolfsburg. Conceded by Neven Subotic.