Ce derby démarre timidement, pas grand chose à se mettre sous la dent dans la première demi-heure de jeu, les deux équipes s'observent. Il faut attendre la 30e minute pour voir une action collective du Borussia conclue par une tête de Kagawa. Le Borussia mène 1-0 (30e , 1-0). La réaction des joueurs de Gelsenkirchen ne se fait pas attendre avec l'égalisation 3 minutes après l'ouverture du score, par l'intermédiaire d'Huntelaar qui vient conclure du plat du pied une belle incursion de Leroy Sané (33e, 1-1) . Le derby est enfin lancé. Les locaux reprennent l'avantage grâce à Matthias Ginter, venu couper de la tête un corner de Mkhitaryan (42e , 2-1). Le match est serré, mais c'est Dortmund qui est devant à la pause.
Dortmund, équipe la plus prolifique en 1ère mi-temps avec 16 buts inscrits
Au retour des vestiaires, les joueurs du Borussia accélèrent d'entrée, et inscrivent un 3e but grâce à Pierre-Emerick Aubameyang, d'un plat du pied croisé qui vient mourir dans le petit filet (47e , 3-1). S'en suit une domination du Borussia, qui tombe sur un Fahrmann solide, auteur de 2 parades (52e , 68e) qui permet à Schalke de rester en vie. Surtout qu'à la 70e, Huntelaar, étrangement seul profite d'un dégagement raté, pour piquer son ballon et s'offrir un doublé, de quoi permettre aux 7000 supporters de Schalke d'espérer (70e, 3-2). Les visiteurs frôlent l'égalisation à la 79e avec une frappe détournée par le gardien, qui tape le poteau. La fin de match est à l'avantage de Schalke mais ce sont bien les joueurs du Borussia qui s'imposent 3 buts à 2 dans un derby spectaculaire.
Le Borussia se fait peur mais le Borussia gagne
Grace à ce succès, les hommes de Thomas Tuchel enchainent une 7e victoire toutes compétitions confondues et s'accrochent à 5 points du Bayern Munich. De son côté, Schalke enchaine un 6e match toutes compétitions confondues sans victoire et perd une place au classement pour se retrouver 5e.