Match ends, Bayer 04 Leverkusen 3, Borussia Dortmund 4.
Erling Braut Haaland's brace helped Borussia Dortmund come from behind three times to claim a thrilling Bundesliga victory at Bayer Leverkusen.
Haaland, who also grabbed an assist, cancelled out Florian Wirtz's opener with a towering header and later scored the winner from the penalty spot.
In a frantic encounter, Czech Republic striker Patrik Schick and French winger Moussa Diaby scored for Leverkusen.
But goals from Haaland, Julian Brandt and Raphael Guerreiro saved Dortmund.
England midfielder Jude Bellingham had a goal ruled out for Dortmund shortly before half time and Schick capitalised to put Leverkusen in the driving seat going into the break.
But Leverkusen's lead lasted only minutes into the second half as Brandt controlled Haaland's pass with his heel before firing into the roof of the net.
Six minutes later, Diaby's long-range strike made it 3-2 to the hosts, but Guerreiro's superb free-kick once again brought Dortmund level.
Marco Reus was eventually awarded a penalty when he was struck in the face by the arm of Odilon Kossounou and Haaland kept his cool to slot in the winner for Dortmund in the 77th minute.
Line-ups
B Leverkusen
Formation 4-2-3-1
- 1Hrádecky
- 30FrimpongBooked at 70mins
- 6KossounouBooked at 75mins
- 4Tah
- 5Bakker
- 10DemirbaySubstituted forBellarabiat 79'minutes
- 8Andrich
- 19DiabyBooked at 86mins
- 27WirtzBooked at 60mins
- 7Sampaio FilhoSubstituted forAdliat 63'minutes
- 14SchickSubstituted forAlarioat 79'minutes
Substitutes
- 3Retsos
- 11Amiri
- 13Alario
- 22Sinkgraven
- 25Palacios
- 31Adli
- 38Bellarabi
- 40Lunev
B Dortmund
Formation 4-3-2-1
- 1Kobel
- 24MeunierBooked at 20mins
- 34PongracicSubstituted forHummelsat 84'minutes
- 16Akanji
- 13Guerreiro
- 22BellinghamSubstituted forWolfat 89'minutesBooked at 90mins
- 28WitselSubstituted forMalenat 65'minutes
- 8Dahoud
- 19Brandt
- 11Reus
- 9HaalandBooked at 60mins
Substitutes
- 15Hummels
- 18Moukoko
- 20Carvalho
- 21Malen
- 30Passlack
- 35Hitz
- 36Knauff
- 39Wolf
- 42Gurpuz
- Referee:
- Daniel Siebert
- Attendance:
- 17,605
Match Stats
- Possession
- Home42%
- Away58%
- Shots
- Home11
- Away14
- Shots on Target
- Home5
- Away6
- Corners
- Home4
- Away3
- Fouls
- Home10
- Away11
Live Text
Post update
Full Time
Second Half ends, Bayer 04 Leverkusen 3, Borussia Dortmund 4.
Post update
Corner, Borussia Dortmund. Conceded by Robert Andrich.
Post update
Corner, Borussia Dortmund. Conceded by Robert Andrich.
Booking
Marius Wolf (Borussia Dortmund) is shown the yellow card for a bad foul.
Post update
Foul by Marius Wolf (Borussia Dortmund).
Post update
Moussa Diaby (Bayer 04 Leverkusen) wins a free kick on the left wing.
Post update
Attempt saved. Marius Wolf (Borussia Dortmund) right footed shot from the right side of the box is saved in the centre of the goal. Assisted by Marco Reus.
Post update
Manuel Akanji (Borussia Dortmund) wins a free kick in the defensive half.
Post update
Foul by Lucas Alario (Bayer 04 Leverkusen).
Substitution
Substitution, Borussia Dortmund. Marius Wolf replaces Jude Bellingham because of an injury.
Post update
Corner, Bayer 04 Leverkusen. Conceded by Mats Hummels.
Post update
Foul by Marco Reus (Borussia Dortmund).
Post update
Robert Andrich (Bayer 04 Leverkusen) wins a free kick in the defensive half.
Booking
Moussa Diaby (Bayer 04 Leverkusen) is shown the yellow card.
Post update
Gregor Kobel (Borussia Dortmund) wins a free kick in the defensive half.
Post update
Foul by Moussa Diaby (Bayer 04 Leverkusen).
Substitution
Substitution, Borussia Dortmund. Mats Hummels replaces Marin Pongracic.
Post update
Jude Bellingham (Borussia Dortmund).
Post update
Florian Wirtz (Bayer 04 Leverkusen) wins a free kick in the attacking half.
- How has the Premier League succeeded?: Fever Pitch tells the origin story via the stars that made it
- Celebrate the Mercury Prize: Listen to the best tracks from nominees and winners of the prestigious prize