Unbeaten in the league this season and yet to concede to concede a Bundesliga goal going into this match, Dortmund began confidently and immediately looked to impose themselves on the game. There were early chances for Christian Pulisic and Pierre-Emerick Aubameyang - who hit the post with a header - before Shinji Kagawa broke the deadlock following a corner. The home team took a while to recover and although they fought well in midfield, they rarely looked like scoring before the interval.
Dortmund earned the breathing space their superiority deserved midway through the second half thanks to a superbly executed counter-attack. Pulisic found Andrey Yarmolenko on the right and the summer signing skipped past his marker before fizzing a ball across the face of goal to leave Aubameyang with a simple tap-in. Pulisic got on the scoresheet himself in the closing stages, darting into the box and finishing superbly to seal the win for Dortmund.
Man of the match
Yarmolenko was outstanding again here, his pace, trickery and directness causing the Hamburg defence all sorts of problems. He was involved in both of Dortmund's opening goals, taking the the corner that led to Kagawa's strike, and teeing up Aubameyang for the second.
- Kagawa started a Bundesliga match for the first time this season. The Japan international only scored once last term - against Hamburg.
- Kagawa is now tied with former Mainz striker Shinji Okazaki on 37 Bundeslia goals - the most ever scored in Germany's top flight by a Japanese player.
- Pulisic scored his first ever Bundesliga goal against Hamburg on 17 April 2016. The American's strike was also Dortmund's 3000th Bundesliga goal.
- This is the first time Hamburg have lost lost three in a row under coach Markus Gisdol.
- Dortmund have topped the table at the end of every matchday so far - a Bundesliga first for the club.
- This was Dortmund's 750th victory in Germany’s top flight. Only Bayern (1046) and Werder Bremen (761) have won more Bundesliga games.
Watch: Pulisic reflects on Dortmund's win
Hamburg: Mathenia - Diekmeier, Papadopoulos, Jung, Sakai (c) (Santos 48') - Mavraj, Walace - Hahn, Holtby, Salihovic (Waldschmidt 70') - Wood (Janjicic 84')
Coach: Markus Gisdol
Dortmund: Bürki - Piszczek, Sokratis (c), Toprak, Zagadou - Sahin, Castro, Kagawa (Dahoud 66') - Pulisic, Aubameyang, Yarmolenko (Philipp 66')
Coach: Peter Bosz