Dortmund were on top from the word go and both Robert Lewandowski and Mats Hummels came close to breaking the deadlock in the opening 20 minutes.
It took 35 minutes for the breakthrough to finally arrive and it came through Marco Reus, who tapped in from close range after a Lewandowski strike was saved.
It all happened right at the end of the half. First Fallou Diagne brought down Lewandowski in the box and was sent off, with Reus scoring from the spot to send Dortmund in at 2-0.
After that it was complete one-way traffic, with Lewandowski adding his first of the game on 58 after being found by Reus.
Dortmund were not finished there, however, as Lewandowski tapped in from close range on 70 minutes before substitute Jakub Blaszczykowski made it five with 10 to play.