In a high-octane encounter at the Red Bull Arena, RB Leipzig and Borussia Dortmund played out a tactical chess match that ended in a 2-2 draw. Ole Werner’s side dominated the opening phases, leveraging a structural asymmetry that Dortmund struggled to contain, but Niko Kovač’s adjustments in the second period ensured the spoils were shared in this Matchday 23 Topspiel.
First Half: Leipzig’s Left-Sided Overloads
Leipzig entered the match utilizing a fluid 4-2-3-1 that transitioned into a 3-2-5 in possession. The tactical blueprint was clear: exploit Dortmund’s right-sided defensive channel. With David Raum pushing high and Antonio Nusa tucking inside to occupy the half-spaces, Leipzig created a 3v2 numerical advantage against Dortmund’s wing-back and right-sided center-back. This strategy bore fruit in the 20th minute when a rapid transition found Christoph Baumgartner unmarked in the box, who finished clinically to make it 1-0.
Dortmund, operating in a 3-5-2, struggled to manage the horizontal stretching of their backline. Leipzig maintained 58% possession throughout the first half, successfully pinning BVB deep. The second goal in the 39th minute was a near carbon copy of the first. Again, the penetration came from the left flank, where a low-driven cross found Baumgartner arriving late into the 'Zone 14' area to double the lead. At this stage, Leipzig’s Expected Goals (xG) stood at a dominant 1.42 compared to Dortmund’s meager 0.18.
Tactical Pivot: Kovač’s Mid-Game Adjustment
Recognizing the failure of the 3-5-2 to track Leipzig's drifting attackers, Niko Kovač switched to a more rigid 4-4-2 diamond following the interval. This allowed Julian Ryerson and Ramy Bensebaini to act as traditional full-backs, nullifying the overlaps that plagued them in the first half. The momentum shifted almost immediately. In the 49th minute, a Ryerson corner was met by Bensebaini; the ball deflected off Leipzig’s Rômulo and into the net, cutting the deficit to 2-1.
Leipzig’s high press, which had been so effective earlier, began to fray as fatigue set in. Dortmund increased their pass completion rate to 88% in the final third, finding more joy through Julian Brandt, who began to dictate the tempo. Leipzig attempted to shore up the midfield by introducing Xaver Schlager to protect the back four, but the tactical momentum had already swung toward the visitors.
The Final Push: Stoppage Time Drama
As the clock wound down, Leipzig retreated into a low block, a move that invited sustained pressure. Werner’s side looked to have weathered the storm, but Dortmund’s persistence in the wide areas finally broke the resolve. In the 90th minute, a chaotic scramble following a deflected cross saw the ball fall to substitute Fabio Silva. The Portuguese forward made no mistake, firing past Vandevoordt to silence the Red Bull Arena and secure a 2-2 draw.
Key Metrics and Performance Data
The final whistle saw a stat sheet that reflected the balanced nature of the contest. Leipzig finished with 14 shots to Dortmund’s 11, though Dortmund’s late surge saw them edge the final xG tally 1.85 to 1.74. A standout performer was Christoph Baumgartner, who recorded 8 goals for the season following his brace, while Julian Ryerson’s assist moved his season total to 11, highlighting his importance to Kovač’s system.
Ultimately, this was a match won and lost in the coaching boxes. Werner’s initial plan nearly secured a tactical masterclass, but Kovač’s refusal to remain static allowed Dortmund to maintain their 15-match unbeaten streak in the Bundesliga, keeping them firmly in the hunt for the title behind leaders Bayern Munich.

