Tactical Breakdown — RB Leipzig vs TSG Hoffenheim
By Wandrille P. , March 21, 2026
Tags: Bundesliga , tactical analysis
RB Leipzig 5-0 Hoffenheim: A Tactical Masterclass in Left-Sided Destruction
A tactical analysis of how RB Leipzig systematically dismantled Hoffenheim by overloading the left flank, exploiting blind-side runs, and collapsing a misaligned defensive block.
Bundesliga 2025/26 — Matchday 27
Leipzig’s tactical plan against Hoffenheim
Heading into this high-stakes fixture with Champions League qualification on the line, RB Leipzig opted for a proactive and highly fluid 4-3-3. The strategy was clear: pin Hoffenheim back early, utilize aggressive counter-pressing in the middle third, and heavily overload the flanks — specifically the left side with David Raum and Yan Diomande.
Hoffenheim lined up in a 4-3-3 of their own. The tactical intention was to absorb pressure using a compact mid-block and exploit Leipzig’s high line through quick vertical transitions to their pacey forwards, Bazoumana Touré and Tim Lemperle. Their defensive line was tasked with maintaining an offside trap that would soon be brutally exposed.
What Worked
Left-sided overloads and vertical triangles
Leipzig completely dismantled Hoffenheim on the left flank. The synchronized movements of David Raum pushing high from full-back, Yan Diomande drifting into the half-space, and Nicolas Seiwald providing underlapping runs created constant overload situations against Vladimír Coufal. This was perfectly illustrated in the build-up to the fourth goal in the 44th minute, where Diomande and Seiwald executed a rapid one-two that bypassed four Hoffenheim defenders in a single sequence, leaving Gruda completely alone at the back post to tap in from five metres.
Late runs and blind-side exploitation
Leipzig’s forwards consistently manipulated Hoffenheim’s centre-backs to create space for midfielders arriving late into the box. Christoph Baumgartner played essentially as a shadow striker, capitalizing on the spaces vacated by Rômulo. His second goal — a breathtaking chest control and overhead kick — stemmed directly from Brajan Gruda receiving the ball in midfield with too much space, lifting it with precision into the area where Baumgartner could receive unmarked, with Coufal again tucking in far too late.
What Didn’t Work
Hoffenheim’s collective defensive spacing and spatial awareness were nothing short of disastrous, completely invalidating their pre-match plan within a 15-minute window. The individual errors compounded a structural lethargy: the right side of their defense (Coufal and Hranáč) failed to communicate when to step up and when to drop. Coufal continually tucked in far too late, leaving gaping channels out wide, while the centre-backs were guilty of ball-watching. The most glaring example was the fourth goal, where Gruda was left completely unmarked at the far post — a symptom of Hoffenheim’s midfield failing to track opposite-side runners entirely.
Stats by Zone
Ball possession: 50% Leipzig – 50% Hoffenheim. The perfect equilibrium in possession masks the reality entirely. Hoffenheim held the ball in sterile, non-threatening areas of their own defensive third, while Leipzig’s possession was direct, vertical, and localized in the final third.
Passing zones: Both teams registered similar passing volumes (451 for Leipzig, 438 for Hoffenheim, both around 82–84% accuracy). However, Leipzig’s passes bypassed the midfield press effortlessly — Lukeba alone registered 51 accurate passes, primarily breaking the first line of the press.
Duels and intensity: Leipzig absolutely dominated the wide zones. Brajan Gruda won an astonishing 11 of his 18 duels on the right wing, while David Raum won 5 of 7 on the left. Hoffenheim resorted to late challenges in the middle third, reflected in their 16 fouls compared to Leipzig’s 8.
Player Ratings
RB Leipzig
| Player | Position | Rating |
|---|---|---|
| Maarten Vandevoordt | GK | 7.5 |
| Ridle Baku | DEF | 6.6 |
| Willi Orbán | DEF | 7.3 |
| Castello Lukeba | DEF | 7.7 |
| David Raum | DEF | 9.2 |
| Xaver Schlager | MID | 7.0 |
| Nicolas Seiwald | MID | 7.2 |
| Christoph Baumgartner | MID | 8.3 |
| Brajan Gruda | FWD | 10 |
| Rômulo | FWD | 6.7 |
| Yan Diomande | FWD | 7.9 |
Maarten Vandevoordt (Goalkeeper — 7.5) Excellent distribution to launch quick transitions, and claimed his 10th clean sheet of the campaign. His only real test came from a Prömel effort in the 53rd minute, which he handled comfortably.
Ridle Baku (Defender — 6.6) Stayed tactically tucked in as an inverted full-back to allow Raum absolute freedom on the opposite flank.
Willi Orbán (Defender — 7.3) Anchored the high line flawlessly and stepped out aggressively to intercept Hoffenheim’s long balls. Picked up a yellow card in the 14th minute for bringing down Touré on the left flank.
Castello Lukeba (Defender — 7.7) Superb progressive passing from the back (51/57 accurate), entirely neutralizing the visitors’ pressing triggers.
David Raum (Defender — 9.2) The ultimate wide playmaker, dominating the left channel entirely. Directly involved in the second and fourth goals — assisting Baumgartner’s header with a pinpoint cross from the penalty spot area after winning back a corner rebound.
Xaver Schlager (Midfielder — 7.0) Acted as midfield enforcer, winning duels to secure central zones. Indirectly involved in the disallowed fifth goal, ruled out for active offside when pressuring Coufal’s clearance.
Nicolas Seiwald (Midfielder — 7.2) The tactical connective tissue of the team — intercepting passes and facilitating the rapid left-sided overloads. His first-time slide-rule pass to Rômulo was the key to the opening goal sequence.
Christoph Baumgartner (Midfielder — 8.3) Thrived in the spaces between the lines, executing devastating late runs into the box to net a brace. His second goal — a chest control and overhead kick into the bottom corner — was the moment of the match.
Brajan Gruda (Forward — 10) An absolute masterclass. Two goals, one assist, four key passes, 11 duels won. His first goal came from a Baumann rebound off a Rômulo shot; his second was a composed finish at the back post after the Diomande–Seiwald combination carved Hoffenheim apart.
Rômulo (Forward — 6.7) Occupied the centre-backs effectively, pinning them deep to create pockets of space for Baumgartner. His shot in the 17th minute forced the rebound that Gruda converted for the opener.
Yan Diomande (Forward — 7.9) A relentless force, constantly manipulating the half-spaces despite picking up a shoulder injury in the 32nd minute. Laid off the brilliant assist for the fourth goal before being substituted in the 66th minute.
Substitutes: Ezechiel Banzuzi (6.9) — maintained midfield shape after replacing Schlager (66’). Antonio Nusa (6.9) — added direct width and provided the assist for the fifth goal with a driven low cross from the left. Benjamin Henrichs (7.6) — scored a fine finish high into the near corner within two minutes of coming on (78’), turning quickly after controlling Nusa’s cross. Conrad Harder (6.3) & Max Finkgräfe (6.9) — helped cleanly see out the game.
TSG Hoffenheim
| Player | Position | Rating |
|---|---|---|
| Oliver Baumann | GK | 5.3 |
| Vladimír Coufal | DEF | 5.0 |
| Robin Hranáč | DEF | 5.7 |
| Ozan Kabak | DEF | 5.7 |
| Bernardo | DEF | 6.0 |
| Alexander Prass | MID | 6.5 |
| Wouter Burger | MID | 6.9 |
| Grischa Prömel | MID | 6.2 |
| Bazoumana Touré | FWD | 6.2 |
| Fisnik Asllani | FWD | 6.9 |
| Tim Lemperle | FWD | 6.0 |
Oliver Baumann (Goalkeeper — 5.3) Left completely exposed by his defensive line. His unfortunate rebound from a Rômulo shot in the 17th minute gifted Gruda the opener from four metres — a moment that set the tone for the entire evening.
Vladimír Coufal (Defender — 5.0) Tactically overwhelmed throughout. Consistently tucked in too late, leaving channels wide open for Leipzig’s overloads. Was under pressure from Schlager when his clearance led to the disallowed Diomande goal in first-half stoppage time.
Robin Hranáč (Defender — 5.7) Struggled to manage the distance between himself and Coufal. Substituted at halftime for Hajdari as Hoffenheim tried to stop the defensive bleeding.
Ozan Kabak (Defender — 5.7) Forced into excessive build-up play (64 passes) but lacked defensive authority against Leipzig’s dynamic movement. Did well to cut out a Diomande run in the 56th minute.
Bernardo (Defender — 6.0) Marginally better than the opposite flank but was pinned back far too deep by Gruda to offer any attacking support. Picked up a yellow card in the 23rd minute for a high-foot challenge on Gruda.
Alexander Prass (Midfielder — 6.5) Attempted to drive the team forward and made one crucial intervention — winning a foot-race against Diomande in the 12th minute to snuff out a dangerous counter. But was structurally isolated for most of the match.
Wouter Burger (Midfielder — 6.9) Tried valiantly to anchor the midfield with strong duel numbers, but gave the ball away cheaply near the Leipzig box in the 65th minute, immediately inviting a counter-attack.
Grischa Prömel (Midfielder — 6.2) Failed to close down the passing lanes to Baumgartner and offered little offensive penetration. His best moment was a shot in the 53rd minute — the only time Vandevoordt was truly tested all evening.
Bazoumana Touré (Forward — 6.2) Kept largely isolated on the left flank, completing only 14 passes. Did show dangerous pace in the early minutes — forcing Orbán’s yellow card in the 14th minute — but service dried up completely after Leipzig took control.
Fisnik Asllani (Forward — 6.9) Dropped deep to link play but was largely ineffective. His misplaced pass in the 17th minute triggered the sequence that led directly to Leipzig’s opening goal.
Tim Lemperle (Forward — 6.0) Looked to exploit spaces behind Leipzig’s high line but was entirely starved of quality service. His best moment was a header from a corner in the 48th minute, cleared off the line.
Substitutes: Albian Hajdari (7.0) — replaced Hranáč at halftime and stabilized the right side slightly, though was too passive in the challenge that led to the fifth goal. Andrej Kramarić (6.5), Cole Campbell (6.5), Max Moerstedt (6.7), Muhammed Damar (6.3) — all introduced to limit the damage; Damar forced a save from Vandevoordt in the 87th minute, Leipzig’s only real test of the second half.
The Verdict
Leipzig generated 2.19 xG compared to Hoffenheim’s 0.78. A 5-0 scoreline suggests Leipzig heavily overperformed their expected goals — thanks largely to ruthless finishing from Gruda and an otherworldly overhead kick by Baumgartner. While the 50-50 possession split might hint at a balanced game on paper, the eye test and territorial dominance say otherwise. A disallowed Diomande goal in first-half stoppage time — ruled out for Schlager’s active offside after a VAR review — would have made it 5-0 at the break, a scoreline that would have accurately reflected Leipzig’s total dominance.
For Leipzig, this result sends a clear message in the race for Champions League qualification: they jump from 5th to 3rd in the table, though Stuttgart could overtake them on the weekend. For Hoffenheim, the lessons are structural, not individual — they fall from 3rd to 5th and face an urgent need to rebuild their defensive organisation before the trip to Mainz, where another disjointed performance would seriously damage their own Champions League ambitions.
Written by Wandrille P — football analyst specializing in data-driven match analysis and creator of Ultrivia.