2024–25 2. Bundesliga#Promotion/relegation play-offs

{{Infobox football league season

|competition = 2. Bundesliga

|season = 2024–25

|dates = 2 August 2024 – 18 May 2025

|winners = 1. FC Köln (5th title)

|promoted = 1. FC Köln
Hamburger SV

|relegated = SSV Ulm
Jahn Regensburg

|matches = 306

|total goals = 925

|league topscorer = Davie Selke
(22 goals)

|biggest home win = Elversberg 6–0 Regensburg

|biggest away win = Regensburg 0–4 Fürth
Fürth 0–4 Nürnberg
Fürth 1–5 Darmstadt
Braunschweig 1–5 Hertha

|highest scoring = Nürnberg 8–3 Regensburg

|longest wins = 4 games
Kaiserslautern

|longest unbeaten = 11 games
Hamburg

|longest winless = 8 games
Braunschweig
Regensburg

|longest losses = 4 games
four teams

|highest attendance = 71,500
Hertha v Hamburg

|lowest attendance = 8,451
Elversberg v Ulm

|attendancecalc = 9434101

|prevseason = 2023–24

|nextseason = 2025–26

}}

The 2024–25 2. Bundesliga was the 51st season of the 2. Bundesliga. It began on 2 August 2024 and concluded on 18 May 2025.{{cite news |url=https://www.dfl.de/de/aktuelles/rahmenterminkalender-saison-2024-25/ |title=Rahmenterminkalender für die Saison 2024/25: Bundesliga-Auftakt am 23. August 2024 – 2. Bundesliga startet am 2. August 2024 |trans-title=Framework schedule for the 2024–25 season: Bundesliga kicks off on 23 August 2024 – 2. Bundesliga starts on 2 August 2024 |website=DFL.de |publisher=Deutsche Fußball Liga |date=27 October 2023 |access-date=27 April 2024 |language=de}}{{cite web |url=https://media.dfl.de/sites/2/2023/10/Rahmenterminkalender-2024_25-1.pdf |title=Rahmenterminkalender 2024/2025 |trans-title=2024–2025 framework schedule |website=DFL.de |publisher=Deutsche Fußball Liga |date=27 October 2023 |access-date=27 April 2024 |language=de}}

The fixtures were announced on 4 July 2024.{{cite news |url=https://www.kicker.de/zweitliga-spielplan-2024-25-s04-eroeffnet-zuhause-ulm-startet-gegen-lautern-1036004/artikel|title=Zweitliga-Spielplan 2024/25: S04 eröffnet zuhause – Ulm startet gegen Lautern|website=Kicker|date=4 July 2024|access-date=4 July 2024|language=de}}

Teams

{{Location map+|Germany|width=400|float=right|caption=Locations of the 2024–25 2. Bundesliga teams|places=

{{Location map~|Germany|lat=52.514722|long=13.239444|label=Hertha BSC|position=left}}

{{Location map~|Germany|lat=52.290116|long=10.521575|label=Braun-
schweig
|position=bottom}}

{{Location map~|Germany|lat=49.866667|long= 8.672222|label=Darmstadt|position=top}}

{{Location map~|Germany|lat=51.261667|long= 6.733056|label=Düsseldorf|position=right}}

{{Location map~|Germany|lat=49.318611|long= 7.121667|label=Elversberg|position=bottom}}

{{Location map~|Germany|lat=49.486979|long=10.999202|label=Fürth|position=top}}

{{Location map~|Germany|lat=53.587095|long= 9.898711|label=Hamburg|position=top}}

{{Location map~|Germany|lat=52.360771|long= 9.730700|label=Hannover|position=top}}

{{Location map~|Germany|lat=49.444722|long= 7.768889|label=Kaiserslautern|position=right}}

{{Location map~|Germany|lat=49.021176|long= 8.413021|label=Karlsruhe|position=right}}

{{Location map~|Germany|lat=50.933611|long= 6.874697|label=Köln|position=bottom}}

{{Location map~|Germany|lat=52.133333|long=11.616667|label=Magdeburg|position=right}}

{{Location map~|Germany|lat=51.961563|long=7.628202|label=Münster|position=top}}

{{Location map~|Germany|lat=49.426255|long=11.125698|label=Nürnberg|position=right}}

{{Location map~|Germany|lat=51.730703|long= 8.711028|label=Paderborn|position=left}}

{{Location map~|Germany|lat=49.015600|long=12.073914|label=Regensburg|position=top}}

{{Location map~|Germany|lat=51.554498|long= 7.067554|label=Schalke|position=left}}

{{Location map~|Germany|lat=48.400002|long= 9.983333|label=Ulm|position=left}}

}}

=Team changes=

=Stadiums and locations=

class="wikitable sortable" style="text-align:left;"
Team

! Location

! Stadium

! Capacity

data-sort-value="Berlin" | Hertha BSC

| Berlin

| Olympiastadion

| 74,649

data-sort-value="Braunschweig" | Eintracht Braunschweig

| Braunschweig

| Eintracht-Stadion

| 23,325

data-sort-value="Darmstadt" | Darmstadt 98

| Darmstadt

| Merck-Stadion am Böllenfalltor

| 17,650

data-sort-value="Düsseldorf" | Fortuna Düsseldorf

| Düsseldorf

| Merkur Spiel-Arena

| 54,600

data-sort-value="Elversberg" | SV Elversberg

| Spiesen-Elversberg

| Waldstadion an der Kaiserlinde

| 10,000

data-sort-value="Furth" | Greuther Fürth

| Fürth

| Sportpark Ronhof Thomas Sommer

| 16,626

data-sort-value="Hamburg" | Hamburger SV

| Hamburg

| Volksparkstadion

| 57,000

data-sort-value="Hannover" | Hannover 96

| Hanover

| Heinz von Heiden Arena

| 49,000

data-sort-value="Kaiserslautern" | 1. FC Kaiserslautern

| Kaiserslautern

| Fritz-Walter-Stadion

| 49,327

data-sort-value="Karlsruhe" | Karlsruher SC

| Karlsruhe

| BBBank Wildpark

| 34,302

data-sort-value="Koln" | 1. FC Köln

| Cologne

| RheinEnergieStadion

| 49,698

data-sort-value="Magdeburg" | 1. FC Magdeburg

| Magdeburg

| Avnet Arena

| 30,098

data-sort-value="Munster" | Preußen Münster

| Münster

| LVM-Preußenstadion

| 14,300

data-sort-value="Nurnberg" | 1. FC Nürnberg

| Nuremberg

| Max-Morlock-Stadion

| 49,923

data-sort-value="Paderborn" | SC Paderborn

| Paderborn

| Home Deluxe Arena

| 15,000

data-sort-value="Regensburg" | Jahn Regensburg

| Regensburg

| Jahnstadion Regensburg

| 15,210

data-sort-value="Schalke" | Schalke 04

| Gelsenkirchen

| Veltins-Arena

| 62,271

data-sort-value="Ulm" | SSV Ulm

| Ulm

| Donaustadion

| 19,500

=Personnel and kits=

class="wikitable sortable"
rowspan="2" | Team

! rowspan="2" | Manager

! rowspan="2" | Captain

! rowspan="2" | Kit manufacturer

! colspan="2" | Shirt sponsor

Front

! Sleeve

data-sort-value="Berlin" | Hertha BSC

| data-sort-value="Leitl, Stefan" | {{flagicon|GER}} Stefan Leitl

| data-sort-value="Leistner, Toni" | {{flagicon|GER}} Toni Leistner

| Nike

| CheckCars24.de

| WTG

data-sort-value="Braunschweig" | Eintracht Braunschweig

| data-sort-value="Pfitzner, Marc" | {{flagicon|GER}} Marc Pfitzner

| data-sort-value="Bicakcic, Ermin" | {{flagicon|BIH}} Ermin Bičakčić

| Puma

| BRAWO Group

| Lease a Bike

data-sort-value="Darmstadt" | Darmstadt 98

| data-sort-value="Kohfeldt, Florian" | {{flagicon|GER}} Florian Kohfeldt

| data-sort-value="Holland, Fabian" | {{flagicon|GER}} Fabian Holland

| Craft

| HAIX

| 28 Black

data-sort-value="Düsseldorf" | Fortuna Düsseldorf

| data-sort-value="Thioune, Daniel" | {{flagicon|GER}} Daniel Thioune

| data-sort-value="Hoffmann, Andre" | {{flagicon|GER}} André Hoffmann

| Adidas

| Targobank

| Metro Chef

data-sort-value="Elversberg" | SV Elversberg

| data-sort-value="Steffen, Horst" | {{flagicon|GER}} Horst Steffen

| data-sort-value="Fellhauer, Robin" | {{flagicon|GER}} Robin Fellhauer

| Nike

| HYLO

|Pure Steel

data-sort-value="Furth" | Greuther Fürth

| data-sort-value="Kleine, Thomas" | {{flagicon|GER}} Thomas Kleine / {{flagicon|MNE}} Milorad Peković

| data-sort-value="Hrgota, Branimir" | {{flagicon|SWE}} Branimir Hrgota

| Puma

| Hofmann Personal

| Signia

data-sort-value="Hamburg" | Hamburger SV

| data-sort-value="Polzin, Merlin" | {{flagicon|GER}} Merlin Polzin

| data-sort-value="Schonlau, Sebastian" | {{flagicon|GER}} Sebastian Schonlau

| Adidas

| HanseMerkur

| Plan International

data-sort-value="Hannover" | Hannover 96

| data-sort-value="Barlemann, Lars" | {{flagicon|GER}} Lars Barlemann / {{flagicon|GER}} Dirk Lottner / {{flagicon|GER}} Christian Schulz

| data-sort-value="Zieler, Ron-Robert" | {{flagicon|GER}} Ron-Robert Zieler

| Macron

| Heise

| ÜSTRA

data-sort-value="Kaiserslautern" | 1. FC Kaiserslautern

| data-sort-value="Lieberknecht, Torsten" | {{flagicon|GER}} Torsten Lieberknecht

| data-sort-value="Ritter, Marlon" | {{flagicon|GER}} Marlon Ritter

| Castore

| Novoline

| Lacalut

data-sort-value="Karlsruhe" | Karlsruher SC

| data-sort-value="Eichner, Christian" | {{flagicon|GER}} Christian Eichner

| data-sort-value="Wanitzek, Marvin" | {{flagicon|GER}} Marvin Wanitzek

| Macron

| SWEG

| billiger.de

data-sort-value="Koln" | 1. FC Köln

| data-sort-value="Funkel, Friedhelm" | {{flagicon|GER}} Friedhelm Funkel

| data-sort-value="Hubers, Timo" | {{flagicon|GER}} Timo Hübers

| Hummel

| REWE

| DEVK

data-sort-value="Magdeburg" | 1. FC Magdeburg

| data-sort-value="Titz, Christian" | {{flagicon|GER}} Christian Titz

| data-sort-value="Reimann, Dominik" | {{flagicon|GER}} Dominik Reimann

| Hummel

| Humanas

| SWM Magdeburg

data-sort-value="Munster" | Preußen Münster

| data-sort-value="Schulze-Marmeling, Kieran" | {{flagicon|GER}} Kieran Schulze-Marmeling

| data-sort-value="Lorenz, Marc" | {{flagicon|GER}} Marc Lorenz

| Jako

| FIEGE

| Stadtwerke Münster

data-sort-value="Nurnberg" | 1. FC Nürnberg

| data-sort-value="Klose, Miroslav" | {{flagicon|GER}} Miroslav Klose

| data-sort-value="Knoche, Robin" | {{flagicon|GER}} Robin Knoche

| Adidas

| Nürnberger Versicherung

| Helmsauer

data-sort-value="Paderborn" | SC Paderborn

| data-sort-value="Kwasniok, Lukas" | {{flagicon|POL}} Lukas Kwasniok

| data-sort-value="Obermair, Raphael" | {{flagicon|GER}} Raphael Obermair

| Saller

| Four 20 Pharma

| Personalco

data-sort-value="Regensburg" | Jahn Regensburg

| data-sort-value="Raychouni, Munier" | {{flagicon|GER}} Munier Raychouni

| data-sort-value="Geipl, Andreas" | {{flagicon|GER}} Andreas Geipl

| Hummel

| Netto

| None

data-sort-value="Schalke" | Schalke 04

| data-sort-value="Fimpel, Jakob" | {{flagicon|GER}} Jakob Fimpel

| data-sort-value="Karaman, Kenan" | {{flagicon|TUR}} Kenan Karaman

| Adidas

| SUN Minimeal

| hülsta

data-sort-value="Ulm" | SSV Ulm

| data-sort-value="Lechleiter, Robert" | {{flagicon|GER}} Robert Lechleiter

| data-sort-value="Reichert, Johannes" | {{flagicon|GER}} Johannes Reichert

| Uhlsport

| Liqui Moly

| B-ITE E-Recruiting

=Managerial changes=

class="wikitable" style="text-align:center"
rowspan="2" | Team

! rowspan="2" | Outgoing

! rowspan="2" | {{Abbr|Manner|Manner of departure}}

! colspan="2" | Exit date

! rowspan="2" | Position in table

! rowspan="2" | Incoming

! colspan="2" | Incoming date

! rowspan="2" | {{Abbr|Ref.|References}}

Announced on

! Departed on

! Announced on

! Arrived on

align="left" | 1. FC Kaiserslautern

| align="left" | {{flagicon|GER}} Friedhelm Funkel

| Mutual consent

| 17 May 2024

| rowspan=4|30 June 2024

| rowspan=4|Pre-season

| align="left" | {{flagicon|GER}} Markus Anfang

| 29 May 2024

| rowspan=4|1 July 2024

| {{cite news |url=https://fck.de/de/fck-und-friedhelm-funkel-beenden-zusammenarbeit-zum-saisonende/ |title=FCK und Friedhelm Funkel beenden Zusammenarbeit zum Saisonende|trans-title=FCK and Friedhelm Funkel end cooperation at end of the season |language=German |publisher=1. FC Kaiserslautern |date=17 May 2024 |accessdate=17 May 2024}}{{cite news |url=https://fck.de/de/markus-anfang-wird-neuer-cheftrainer-beim-1-fc-kaiserslautern/ |title=Markus Anfang wird neuer Cheftrainer beim 1. FC Kaiserslautern |trans-title=Markus Anfang will become new coach of 1. FC Kaiserslautern |language=German |publisher=1. FC Kaiserslautern |date=29 May 2024 |accessdate=29 May 2024}}

align="left" | Hertha BSC

| align="left" | {{flagicon|HUN}} Pál Dárdai

| rowspan=2|End of contract

| 18 May 2024

| align="left" | {{flagicon|GER}} Cristian Fiél

| 6 June 2024

|{{cite news |url=https://www.herthabsc.com/de/nachrichten/2024/05/vertrag-pal-dardai-2324|title=Vertrag von Pál Dárdai endet|language=German|publisher=Hertha BSC |date=18 May 2024 |accessdate=18 May 2024}}{{cite news|url=https://www.herthabsc.com/en/news/2024/06/cristian-fiel-new-head-coach-2425|title=Cristian Fiél to be the new head coach of Hertha BSC|publisher=Hertha BSC|date =7 June 2024|accessdate=7 June 2024}}

align="left" | 1. FC Köln

| align="left" | {{flagicon|GER}} Timo Schultz

| 27 May 2024

| align="left" | {{flagicon|AUT}} Gerhard Struber

| 12 June 2024

| {{cite news |url=https://fc.de/en/schultz-pawlak-and-mckenna-depart|title=Schultz, Pawlak and McKenna depart|publisher=1. FC Köln|date=27 May 2024 |accessdate=27 May 2024}}{{cite news |url=https://fc.de/en/gerhard-struber-is-the-new-fc-coach|title=Gerhard Struber is the new FC coach|publisher=1. FC Köln|date=12 June 2024 |accessdate=12 June 2024}}

align="left" | 1. FC Nürnberg

| align="left" | {{flagicon|GER}} Cristian Fiél

| Signed by Hertha BSC

| 6 June 2024

| align="left" | {{flagicon|GER}} Miroslav Klose

| 11 June 2024

| {{cite news |url=https://www.fcn.de/news/artikel/cristian-fiel-zieht-es-in-die-hauptstadt/|title=Cristian Fiél zieht es in die Hauptstadt|publisher=1. FC Nürnberg|date=6 June 2024 |accessdate=6 June 2024}}{{cite web |url=https://www.fcn.de/news/artikel/mitmiro-in-die-zukunft-miroslav-klose-wird-club-coach/ |title=#MitMiro in die Zukunft: Miroslav Klose wird Club-Coach |trans-title=#WithMiro into the future: Miroslav Klose becomes club coach |language=de |publisher=1. FC Nürnberg |date=11 June 2024 |accessdate=11 June 2024}}

align="left" | Darmstadt 98

| align="left" | {{flagicon|GER}} Torsten Lieberknecht

| Resigned

| colspan=2|1 September 2024

| 18th

| align="left" | {{flagicon|GER}} Florian Kohfeldt

| colspan=2|7 September 2024

| {{cite news |url=https://www.sv98.de/lilien-und-lieberknecht-beenden-zusammenarbeit/|title=Lilien und Lieberknecht beenden Zusammenarbeit|language=de |publisher=Darmstadt 98|date=1 September 2024 |accessdate=1 September 2024}}{{cite news |url=https://www.sv98.de/florian-kohfeldt-ist-neuer-lilien-coach/|title=Florian Kohfeldt ist neuer Lilien-Coach|language=de |publisher=Darmstadt 98|date=7 September 2024 |accessdate=7 September 2024}}

align="left" rowspan=2|Schalke 04

| align="left" | {{flagicon|BEL}} Karel Geraerts

| Sacked

| colspan=2|21 September 2024

| 14th

| align="left" | {{flagicon|GER}} Jakob Fimpel (interim)

| colspan=2|21 September 2024

| {{cite news |url=https://schalke04.de/en/team/marc-wilmots-and-karel-geraerts-leave-s04/|title=Marc Wilmots and Karel Geraerts leave S04 with immediate effect|publisher=Schalke 04|date=21 September 2024 |accessdate=21 September 2024}}

align="left" | {{flagicon|GER}} Jakob Fimpel (interim)

| End of caretaker

| colspan=2|6 October 2024

| 13th

| align="left" | {{flagicon|NED}} Kees van Wonderen

| colspan=2|6 October 2024

| {{cite news |url=https://schalke04.de/en/team/kees-van-wonderen-new-head-coach-2425/|title=Kees van Wonderen is the new head coach of FC Schalke 04|publisher=Schalke 04|date=6 October 2024 |accessdate=6 October 2024}}

align="left" | Greuther Fürth

| align="left" | {{flagicon|GER}} Alexander Zorniger

| rowspan=2|Sacked

| colspan=2|22 October 2024

| 12th

| align="left" | {{flagicon|GER}} Leonhard Haas (interim)

| colspan=2|22 October 2024

| {{cite news |url=https://www.sgf1903.de/news/profis/haas-uebernimmt-bis-winter|title=Haas übernimmt bis Winter|publisher=sgf1903.de|date=22 October 2024 |accessdate=22 October 2024}}

align="left" | Jahn Regensburg

| align="left" | {{flagicon|USA}} Joe Enochs

| colspan=2|27 October 2024

| 18th

| align="left" | {{flagicon|GER}} Andreas Patz

| colspan=2|27 October 2024

| {{cite news |url=https://www.ssv-jahn.de/aktuelles/detail/ssv-jahn-und-joe-enochs-beenden-zusammenarbeit|title=SSV Jahn und Joe Enochs beenden Zusammenarbeit|publisher=ssv-jahn.de|date=27 October 2024 |accessdate=27 October 2024}}{{cite web |title=Andreas Patz wird neuer Chef-Trainer des SSV Jahn |url=https://www.ssv-jahn.de/aktuelles/detail/andreas-patz-wird-neuer-chef-trainer-des-ssv-jahn |website=SSV Jahn Regensburg |access-date=12 December 2024 |language=de |date=21 November 2024}}

align="left" | Greuther Fürth

| align="left" | {{flagicon|GER}} Leonhard Haas (interim)

| End of caretaker

| colspan=2|12 November 2024

| 12th

| align="left" | {{flagicon|GER}} Jan Siewert

| colspan=2|12 November 2024

| {{cite news |url=https://www.sgf1903.de/news/profis/fuerstner-wird-sportdirektor|title=Fürstner wird Sportdirektor|publisher=sgf1903.de|date=12 November 2024 |accessdate=12 November 2024}}

align="left" | Hamburger SV

| align="left" | {{flagicon|GER}} Steffen Baumgart

| rowspan=5|Sacked

| colspan=2|24 November 2024

| rowspan=2|7th

| align="left" | {{flagicon|GER}} Merlin Polzin

| colspan=2|24 November 2024

| {{cite news |url=https://www.hsv.de/news/hsv-stellt-steffen-baumgart-frei|title=HSV stellt Steffen Baumgart frei|publisher=hsv.de|date=24 November 2024 |accessdate=24 November 2024}}{{cite news |url=https://www.hsv.de/en/merlin-polzin-to-remain-as-hsvs-head-coach|title=Merlin Polzin to remain as HSV's head coach|publisher=hsv.de|date=22 December 2024 |accessdate=30 December 2024}}

align="left" | Hannover 96

| align="left" | {{flagicon|GER}} Stefan Leitl

| colspan=2|29 December 2024

| align="left" | {{flagicon|GER}} André Breitenreiter

| colspan=2|29 December 2024

| {{cite news |url=https://www.hannover96.de/newscenter/news/details/34681-nach-zweieinhalb-jahren-stefan-leitl-ist-nicht-mehr-cheftrainer-von-hannover-96.html |title=Stefan Leitl ist nicht mehr Cheftrainer von Hannover 96 |website=hannover96.de |publisher=Hannover 96 |date=29 December 2024 |accessdate=29 December 2024 |language=de}}{{cite news |url=https://www.hannover96.de/newscenter/news/details/34682-mit-respekt-und-grosser-ueberzeugung-andre-breitenreiter-uebernimmt-als-cheftrainer-bei-hannover-96.html |title=André Breitenreiter übernimmt als Cheftrainer bei Hannover 96 |website=hannover96.de |publisher=Hannover 96 |date=29 December 2024 |accessdate=29 December 2024 |language=de}}

align="left" | Hertha BSC

| align="left" | {{flagicon|GER}} Cristian Fiél

| colspan=2|17 February 2025

| 14th

| align="left" | {{flagicon|GER}} Stefan Leitl

| colspan=2|18 February 2025

| {{cite news |url=https://www.herthabsc.com/de/nachrichten/2025/02/trennung-cristian-fiel-2425|title=Hertha BSC trennt sich von Cristian Fiél|language=german|publisher=Hertha BSC|date=17 February 2025 |accessdate=17 February 2025}}{{cite news |url=https://herthab.sc/Traineramt-Stefan-Leitl-2425|title=Stefan Leitl wird neuer Cheftrainer von Hertha BSC|language=german|publisher=Hertha BSC|date=18 February 2025 |accessdate=18 February 2025}}

align="left" | SSV Ulm

| align="left" | {{flagicon|GER}} Thomas Wörle

| colspan=2|11 March 2025

| 17th

| align="left" | {{flagicon|GER}} Robert Lechleiter

| colspan=2|11 March 2025

| {{cite news |url=https://www.ssvulm1846-fussball.de/profis/der-ssv-ulm-1846-fussball-trennt-sich-von-thomas-woerle|title=Der SSV Ulm 1846 Fussball trennt sich von Thomas Wörle|language=de|publisher=SSV Ulm|date=11 March 2025 |accessdate=11 March 2025}}

align="left" | 1. FC Kaiserslautern

| align="left" | {{flagicon|GER}} Markus Anfang

| colspan=2|22 April 2025

| 7th

| align="left" | {{flagicon|GER}} Torsten Lieberknecht

| colspan=2|22 April 2025

| {{cite news |url=https://fck.de/de/anfang-freigestellt-lieberknecht-neuer-cheftrainer/ |title=FCK stellt Markus Anfang frei – Torsten Lieberknecht wird neuer Cheftrainer |language=de |publisher=1. FC Kaiserslautern |date=22 April 2025 |accessdate=22 April 2025}}

align="left" | Hannover 96

| align="left" | {{flagicon|GER}} André Breitenreiter

| Mutual consent

| colspan=2|23 April 2025

| 10th

| align="left" | {{flagicon|GER}} Lars Barlemann / {{flagicon|GER}} Dirk Lottner / {{flagicon|GER}} Christian Schulz (interim)

| colspan=2|23 April 2025

| {{cite news |url=https://www.hannover96.de/newscenter/news/details/35236-interimsloesung-bis-saisonende-hannover-96-und-andre-breitenreiter-beenden-zusammenarbeit-mit-sofortiger-wirkung.html |title=Hannover 96 und André Breitenreiter beenden Zusammenarbeit mit sofortiger Wirkung |language=de |publisher=Hannover 96 |date=23 April 2025 |accessdate=23 April 2025}}

align="left" | Preußen Münster

| align="left" | {{flagicon|GER}} Sascha Hildmann

| Sacked

| colspan=2|27 April 2025

| 17th

| align="left" | {{flagicon|GER}} Kieran Schulze-Marmeling (interim)

| colspan=2|28 April 2025

| {{cite news |url=https://scpreussen-muenster.de/news/schwere-trainerentscheidung-sascha-hildmann-und-louis-cordes-werden-freigestellt/|title=Schwere Trainerentscheidung – Sascha Hildmann und Louis Cordes werden freigestellt|language=de |publisher=Preußen Münster|date=27 April 2025 |accessdate=27 April 2025}}{{cite news |url=https://scpreussen-muenster.de/news/interne-loesung-fuer-das-saisonfinale-verantwortung-ruht-auf-mehreren-schultern/|title=Interne Lösung für das Saisonfinale – Verantwortung ruht auf mehreren Schultern|language=de |publisher=Preußen Münster|date=28 April 2025 |accessdate=28 April 2025}}

align="left" | Schalke 04

| align="left" | {{flagicon|NED}} Kees van Wonderen

| rowspan=3|Sacked

| colspan=2|3 May 2025

| 13th

| align="left" | {{flagicon|GER}} Jakob Fimpel (interim)

| colspan=2|3 May 2025

| {{cite news |url=https://schalke04.de/personal/jakob-fimpel-uebernimmt-mannschaft-saisonende/|title=Jakob Fimpel übernimmt Mannschaft bis zum Saisonende|language=de|publisher=Schalke 04|date=3 May 2025 |accessdate=3 May 2025}}

align="left" | 1. FC Köln

| align="left" | {{flagicon|AUT}} Gerhard Struber

| rowspan=2 colspan=2|5 May 2025

| 2nd

| align="left" | {{flagicon|GER}} Friedhelm Funkel

| colspan=2|5 May 2025

| {{cite news |url=https://fc.de/en/news/all-news/friedhelm-funkel-takes-over-as-head-coach|title=Friedhelm Funkel takes over as Head Coach|publisher=1. FC Köln|date=5 May 2025|accessdate=5 May 2025}}

align="left" | Greuther Fürth

| align="left" | {{flagicon|GER}} Jan Siewert

| 14th

| align="left" | {{flagicon|GER}} Thomas Kleine / {{flagicon|MNE}} Milorad Peković

| colspan=2|6 May 2025

| {{cite news |url=https://www.sgf1903.de/news/profis/spielvereinigung-stellt-siewert-frei|title=Spielvereinigung stellt Siewert frei|language=de|publisher=Greuther Fürth|date=5 May 2025|accessdate=6 May 2025}}{{cite news |url=https://www.sgf1903.de/news/profis/trainerduo-uebernimmt-saisonendspurt|title=Trainerduo übernimmt Saisonendspurt|language=de|publisher=Greuther Fürth|date=6 May 2025|accessdate=6 May 2025}}

align="left" | Jahn Regensburg

| align="left" | {{flagicon|GER}} Andreas Patz

| Resigned

| colspan=2|8 May 2025

| 18th

| align="left" | {{flagicon|GER}} Munier Raychouni (interim)

| colspan=2|8 May 2025

| {{cite news |url=https://www.ssv-jahn.de/aktuelles/detail/ssv-jahn-und-andreas-patz-gehen-ab-sofort-getrennte-wege|title=SSV Jahn und Andreas Patz gehen ab sofort getrennte Wege|language=de|publisher=Jahn Regensburg|date=8 May 2025|accessdate=8 May 2025}}

align="left" | Eintracht Braunschweig

| align="left" | {{flagicon|GER}} Daniel Scherning

| Sacked

| colspan=2|19 May 2025

| 16th

| align="left" | {{flagicon|GER}} Marc Pfitzner (interim)

| colspan=2|19 May 2025

| {{cite news |url=https://www.eintracht.com/news/artikel/eintracht-braunschweig-stellt-cheftrainer-daniel-scherning-frei|title=Eintracht Braunschweig stellt Cheftrainer Daniel Scherning frei|language=de|publisher=Eintracht Braunschweig|date=19 May 2025|accessdate=19 May 2025}}

League table

{{2024–25 2. Bundesliga table}}

Results

{{#invoke:Sports results|main

| source = [https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025 Bundesliga]

| update = complete

| matches_style = FBR

| a_note = yes

|team_order=BRA, BSC, DAR, DÜS, ELV, FÜR, HAM, HAN, KAI, KAR, KÖL, MAG, MÜN, NÜR, PAD, REG, SCH, ULM

|name_BRA=Eintracht Braunschweig

|name_BSC=Hertha BSC

|name_DAR=Darmstadt 98

|name_DÜS=Fortuna Düsseldorf

|name_ELV=SV Elversberg

|name_FÜR=Greuther Fürth

|name_HAM=Hamburger SV

|name_HAN=Hannover 96

|name_KAI=1. FC Kaiserslautern

|name_KAR=Karlsruher SC

|name_KÖL=1. FC Köln

|name_MAG=1. FC Magdeburg

|name_MÜN=Preußen Münster

|name_NÜR=1. FC Nürnberg

|name_PAD=SC Paderborn

|name_REG=Jahn Regensburg

|name_SCH=Schalke 04

|name_ULM=SSV Ulm

|match_BRA_BSC=1–5

|match_BRA_DAR=1–0

|match_BRA_DÜS=2–2

|match_BRA_ELV=0–3

|match_BRA_FÜR=2–0

|match_BRA_HAM=3–1

|match_BRA_HAN=2–0

|match_BRA_KAI=2–0

|match_BRA_KAR=1–2

|match_BRA_KÖL=1–2

|match_BRA_MAG=1–3

|match_BRA_MÜN=1–1

|match_BRA_NÜR=1–4

|match_BRA_PAD=3–2

|match_BRA_REG=0–0

|match_BRA_SCH=0–0

|match_BRA_ULM=1–1

|match_BSC_BRA=3–1

|match_BSC_DAR=1–1

|match_BSC_DÜS=0–2

|match_BSC_ELV=1–4

|match_BSC_FÜR=1–0

|match_BSC_HAM=2–3

|match_BSC_HAN=1–1

|match_BSC_KAI=0–1

|match_BSC_KAR=3–1

|match_BSC_KÖL=0–1

|match_BSC_MAG=1–1

|match_BSC_MÜN=1–2

|match_BSC_NÜR=0–0

|match_BSC_PAD=1–2

|match_BSC_REG=2–0

|match_BSC_SCH=1–2

|match_BSC_ULM=2–2

|match_DAR_BRA=1–1

|match_DAR_BSC=3–1

|match_DAR_DÜS=0–2

|match_DAR_ELV=0–3

|match_DAR_FÜR=1–0

|match_DAR_HAM=0–4

|match_DAR_HAN=3–1

|match_DAR_KAI=5–1

|match_DAR_KAR=3–0

|match_DAR_KÖL=5–1

|match_DAR_MAG=1–2

|match_DAR_MÜN=0–0

|match_DAR_NÜR=1–1

|match_DAR_PAD=0–1

|match_DAR_REG=3–1

|match_DAR_SCH=2–0

|match_DAR_ULM=1–1

|match_DÜS_BRA=5–0

|match_DÜS_BSC=2–1

|match_DÜS_DAR=2–2

|match_DÜS_ELV=0–2

|match_DÜS_FÜR=1–2

|match_DÜS_HAM=0–3

|match_DÜS_HAN=1–0

|match_DÜS_KAI=3–4

|match_DÜS_KAR=0–0

|match_DÜS_KÖL=2–2

|match_DÜS_MAG=2–5

|match_DÜS_MÜN=1–0

|match_DÜS_NÜR=3–3

|match_DÜS_PAD=1–1

|match_DÜS_REG=1–0

|match_DÜS_SCH=2–0

|match_DÜS_ULM=3–2

|match_ELV_BRA=3–0

|match_ELV_BSC=4–0

|match_ELV_DAR=4–0

|match_ELV_DÜS=1–1

|match_ELV_FÜR=2–0

|match_ELV_HAM=4–2

|match_ELV_HAN=3–1

|match_ELV_KAI=1–0

|match_ELV_KAR=2–2

|match_ELV_KÖL=2–2

|match_ELV_MAG=2–5

|match_ELV_MÜN=0–1

|match_ELV_NÜR=2–1

|match_ELV_PAD=1–3

|match_ELV_REG=6–0

|match_ELV_SCH=1–4

|match_ELV_ULM=1–3

|match_FÜR_BRA=3–0

|match_FÜR_BSC=2–1

|match_FÜR_DAR=1–5

|match_FÜR_DÜS=1–2

|match_FÜR_ELV=0–0

|match_FÜR_HAM=3–2

|match_FÜR_HAN=1–0

|match_FÜR_KAI=2–4

|match_FÜR_KAR=2–3

|match_FÜR_KÖL=1–1

|match_FÜR_MAG=1–1

|match_FÜR_MÜN=3–1

|match_FÜR_NÜR=0–4

|match_FÜR_PAD=1–1

|match_FÜR_REG=2–1

|match_FÜR_SCH=3–3

|match_FÜR_ULM=0–1

|match_HAM_BRA=2–4

|match_HAM_BSC=1–1

|match_HAM_DAR=2–2

|match_HAM_DÜS=4–1

|match_HAM_ELV=0–0

|match_HAM_FÜR=5–0

|match_HAM_HAN=2–2

|match_HAM_KAI=3–0

|match_HAM_KAR=1–2

|match_HAM_KÖL=1–0

|match_HAM_MAG=3–1

|match_HAM_MÜN=4–1

|match_HAM_NÜR=1–1

|match_HAM_PAD=2–2

|match_HAM_REG=5–0

|match_HAM_SCH=2–2

|match_HAM_ULM=6–1

|match_HAN_BRA=1–1

|match_HAN_BSC=0–0

|match_HAN_DAR=1–2

|match_HAN_DÜS=1–1

|match_HAN_ELV=1–3

|match_HAN_FÜR=1–1

|match_HAN_HAM=1–0

|match_HAN_KAI=3–1

|match_HAN_KAR=2–1

|match_HAN_KÖL=1–0

|match_HAN_MAG=0–0

|match_HAN_MÜN=2–2

|match_HAN_NÜR=2–0

|match_HAN_PAD=1−1

|match_HAN_REG=2–0

|match_HAN_SCH=1–0

|match_HAN_ULM=3–2

|match_KAI_BRA=3–2

|match_KAI_BSC=3–4

|match_KAI_DAR=2–1

|match_KAI_DÜS=3–1

|match_KAI_ELV=1–1

|match_KAI_FÜR=2–2

|match_KAI_HAM=2–2

|match_KAI_HAN=0–0

|match_KAI_KAR=3–1

|match_KAI_KÖL=0–1

|match_KAI_MAG=2–2

|match_KAI_MÜN=2–1

|match_KAI_NÜR=1–2

|match_KAI_PAD=3–0

|match_KAI_REG=3–0

|match_KAI_SCH=2–1

|match_KAI_ULM=2–1

|match_KAR_BRA=0–2

|match_KAR_BSC=1–3

|match_KAR_DAR=3–3

|match_KAR_DÜS=2–3

|match_KAR_ELV=3–2

|match_KAR_FÜR=1–0

|match_KAR_HAM=1–3

|match_KAR_HAN=1–0

|match_KAR_KAI=2–2

|match_KAR_KÖL=1–0

|match_KAR_MAG=3–1

|match_KAR_MÜN=1–1

|match_KAR_NÜR=3–2

|match_KAR_PAD=3–0

|match_KAR_REG=4–2

|match_KAR_SCH=2–0

|match_KAR_ULM=0–0

|match_KÖL_BRA=5–0

|match_KÖL_BSC=0–1

|match_KÖL_DAR=2–1

|match_KÖL_DÜS=1–1

|match_KÖL_ELV=1–0

|match_KÖL_FÜR=1–0

|match_KÖL_HAM=1–2

|match_KÖL_HAN=2–2

|match_KÖL_KAI=4–0

|match_KÖL_KAR=4–4

|match_KÖL_MAG=1–2

|match_KÖL_MÜN=3–1

|match_KÖL_NÜR=3–1

|match_KÖL_PAD=1–2

|match_KÖL_REG=1–1

|match_KÖL_SCH=1–0

|match_KÖL_ULM=2–0

|match_MAG_BRA=1–1

|match_MAG_BSC=1–3

|match_MAG_DAR=4–1

|match_MAG_DÜS=4–2

|match_MAG_ELV=0–0

|match_MAG_FÜR=2–2

|match_MAG_HAM=0–3

|match_MAG_HAN=0–3

|match_MAG_KAI=2–0

|match_MAG_KAR=2–2

|match_MAG_KÖL=3–0

|match_MAG_MÜN=0–5

|match_MAG_NÜR=3–4

|match_MAG_PAD=1–1

|match_MAG_REG=3–0

|match_MAG_SCH=2–2

|match_MAG_ULM=0–0

|match_MÜN_BRA=1–1

|match_MÜN_BSC=2–0

|match_MÜN_DAR=1–1

|match_MÜN_DÜS=1–0

|match_MÜN_ELV=1–1

|match_MÜN_FÜR=2–1

|match_MÜN_HAM=1–2

|match_MÜN_HAN=0–0

|match_MÜN_KAI=0–1

|match_MÜN_KAR=1–1

|match_MÜN_KÖL=0–1

|match_MÜN_MAG=1–2

|match_MÜN_NÜR=0–1

|match_MÜN_PAD=3–3

|match_MÜN_REG=2–0

|match_MÜN_SCH=1–2

|match_MÜN_ULM=0–0

|match_NÜR_BRA=1–0

|match_NÜR_BSC=0–2

|match_NÜR_DAR=1–0

|match_NÜR_DÜS=2–2

|match_NÜR_ELV=1–3

|match_NÜR_FÜR=3–0

|match_NÜR_HAM=0–3

|match_NÜR_HAN=1–2

|match_NÜR_KAI=0–0

|match_NÜR_KAR=2–1

|match_NÜR_KÖL=1–2

|match_NÜR_MAG=0–4

|match_NÜR_MÜN=3–2

|match_NÜR_PAD=2–3

|match_NÜR_REG=8–3

|match_NÜR_SCH=3–1

|match_NÜR_ULM=2–0

|match_PAD_BRA=0–0

|match_PAD_BSC=1–2

|match_PAD_DAR=3–1

|match_PAD_DÜS=1–2

|match_PAD_ELV=1–1

|match_PAD_FÜR=1–2

|match_PAD_HAM=2–0

|match_PAD_HAN=2–1

|match_PAD_KAI=5–3

|match_PAD_KAR=1–2

|match_PAD_KÖL=1–2

|match_PAD_MAG=2–1

|match_PAD_MÜN=2–0

|match_PAD_NÜR=3–2

|match_PAD_REG=3–0

|match_PAD_SCH=2–4

|match_PAD_ULM=0–0

|match_REG_BRA=1–1

|match_REG_BSC=2–0

|match_REG_DAR=2–1

|match_REG_DÜS=0–3

|match_REG_ELV=1–0

|match_REG_FÜR=0–4

|match_REG_HAM=1–1

|match_REG_HAN=0–1

|match_REG_KAI=0–0

|match_REG_KAR=2–2

|match_REG_KÖL=0–1

|match_REG_MAG=0–1

|match_REG_MÜN=0–3

|match_REG_NÜR=2–1

|match_REG_PAD=0–0

|match_REG_SCH=2–0

|match_REG_ULM=1–0

|match_SCH_BRA=5–1

|match_SCH_BSC=2–2

|match_SCH_DAR=3–5

|match_SCH_DÜS=1–1

|match_SCH_ELV=1–2

|match_SCH_FÜR=3–4

|match_SCH_HAM=2–2

|match_SCH_HAN=1–2

|match_SCH_KAI=0–3

|match_SCH_KAR=2–1

|match_SCH_KÖL=1–3

|match_SCH_MAG=2–5

|match_SCH_MÜN=1–0

|match_SCH_NÜR=3–1

|match_SCH_PAD=0–2

|match_SCH_REG=2–0

|match_SCH_ULM=2–1

|match_ULM_BRA=3–1

|match_ULM_BSC=2–3

|match_ULM_DAR=2–1

|match_ULM_DÜS=1–2

|match_ULM_ELV=0–0

|match_ULM_FÜR=1–1

|match_ULM_HAM=1–1

|match_ULM_HAN=1–2

|match_ULM_KAI=1–2

|match_ULM_KAR=0–1

|match_ULM_KÖL=0–1

|match_ULM_MAG=1–0

|match_ULM_MÜN=2–2

|match_ULM_NÜR=1–2

|match_ULM_PAD=0–2

|match_ULM_REG=5–1

|match_ULM_SCH=0–0

}}

Promotion/relegation play-offs

The promotion/relegation play-offs will take place on 23 and 27 May 2025.

=Overview=

{{TwoLegStart}}

{{TwoLegResult|1. FC Saarbrücken {{small|(3L)}}||2–4|Eintracht Braunschweig {{small|(2B)}}||0–2|2–2}}

|}

=Matches=

{{Football box

|id = 3 v 2B

|date = 23 May 2025

|time = 20:30

|team1 = 1. FC Saarbrücken

|score = 0–2

|report = https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/relegation/1-fc-saarbruecken-vs-eintracht-braunschweig

|team2 = Eintracht Braunschweig

|goals1 =

|goals2 =

|stadium = Ludwigsparkstadion, Saarbrücken

|attendance = 15,000

|referee = Tobias Welz

}}

{{Football box

|id = 2B v 3

|date = 27 May 2025

|time = 20:30

|team1 = Eintracht Braunschweig

|score = 2–2

|report = https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/relegation/eintracht-braunschweig-vs-1-fc-saarbruecken

|team2 = 1. FC Saarbrücken

|goals1 =

|goals2 =

|stadium = Eintracht-Stadion, Braunschweig

|attendance = 21,852

|referee = Tobias Stieler

}}

Eintracht Braunschweig won 4–2 on aggregate, and therefore both clubs remained in their respective leagues.

Statistics

=Top goalscorers=

class="wikitable sortable" style="text-align:center"
Rank

!Player

!Club

!Goals{{cite web|url=https://www.bundesliga.com/de/2bundesliga/statistiken/players/tore/2024-2025|title=2. Bundesliga Statistiken 2024–2025|trans-title=2. Bundesliga Stats 2024–2025|website=bundesliga.com|date=4 August 2024|language=de}}

1

| align=left|{{flagicon|GER}} Davie Selke

| align=left|Hamburger SV

| 22

2

| align=left|{{flagicon|NED}} Martijn Kaars

| align=left|1. FC Magdeburg

| 19

rowspan="2"|3

| align=left|{{flagicon|GER}} Ragnar Ache

| align=left|1. FC Kaiserslautern

| rowspan="2"|18

align=left|{{flagicon|KOS}} Fisnik Asllani

| align=left|SV Elversberg

5

| align="left"|{{flagicon|MLI}} Moussa Sylla

| align=left|Schalke 04

| 16

rowspan="2"|6

| align=left|{{flagicon|GHA}} Ransford-Yeboah Königsdörffer

| align=left|Hamburger SV

| rowspan="2"|14

align="left"|{{flagicon|SWE}} Isac Lidberg

| align=left|Darmstadt 98

rowspan="4"|7

| align="left"|{{flagicon|TUR}} Kenan Karaman

| align=left|Schalke 04

| rowspan="4"|13

align="left"|{{flagicon|POL}} Dawid Kownacki

| align=left|Fortuna Düsseldorf

align=left|{{flagicon|FRA}} Rayan Philippe

| align=left|Eintracht Braunschweig

align=left|{{flagicon|GER}} Marvin Wanitzek

| align=left|Karlsruher SC

=Hat-tricks=

class="wikitable sortable"

! Date

! Player

! Club

! Against

! style="text-align:center" | Result

{{dts|format=dmy|2024|8|3}}

| {{flagicon|GEO}} Budu Zivzivadze

| Karlsruher SC

| 1. FC Nürnberg

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/1/karlsruher-sc-vs-1-fc-nuernberg/liveticker 3–2 (H)]

{{dts|format=dmy|2024|9|20}}

| {{flagicon|SWE}} Isac Lidberg

| Darmstadt 98

| Schalke 04

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/news/fc-schalke-04-sv-darmstadt-98-free-highlights-report-matchday-6-29002 5–3 (A)]

{{dts|format=dmy|2024|9|29}}

| {{flagicon|GER}} Marvin Wanitzek

| Karlsruher SC

| 1. FC Köln

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/news/cologne-karlsruhe-free-highlights-report-matchday-7-29149 4–4 (A)]

{{dts|format=dmy|2024|10|25}}

| {{flagicon|GER}} Julian Justvan

| 1. FC Nürnberg

| Jahn Regensburg

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/10/1-fc-nuernberg-vs-ssv-jahn-regensburg/liveticker 8–3 (H)]

{{dts|format=dmy|2025|1|19}}

| {{flagicon|NED}} Martijn Kaars

| 1. FC Magdeburg

| SV Elversberg

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/18/sv-elversberg-vs-1-fc-magdeburg/liveticker 5–2 (A)]

{{dts|format=dmy|2025|1|26}}

| {{flagicon|GER}} Semir Telalović4

| SSV Ulm

| Jahn Regensburg

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/19/ssv-ulm-1846-fussball-vs-ssv-jahn-regensburg/liveticker 5–1 (H)]

{{dts|format=dmy|2025|2|1}}

| {{flagicon|NED}} Martijn Kaars4

| 1. FC Magdeburg

| Schalke 04

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/20/fc-schalke-04-vs-1-fc-magdeburg/liveticker 5–2 (A)]

{{dts|format=dmy|2025|4|12}}

| {{flagicon|KOS}} Fisnik Asllani

| SV Elversberg

| Hannover 96

| style="text-align:center"|[https://www.bundesliga.com/en/2bundesliga/matchday/2024-2025/29/hannover-96-vs-sv-elversberg/liveticker 3–1 (A)]

4 Player scored four goals.

=Clean sheets=

class="wikitable sortable" style="text-align:center"
Rank

! Player

! Club

! Clean
sheets{{Cite web |title=Clean sheets |url=https://www.kicker.de/2-bundesliga/torhueter/2024-25 |access-date=4 August 2024 |website=Kicker |language=de}}

1

| align="left"|{{flagicon|AUT}} Nicolas Kristof

| align="left"|SV Elversberg

| 13

2

| align="left"|{{flagicon|GER}} Ron-Robert Zieler

| align="left"|Hannover 96

| 11

rowspan=3|3

| align="left"|{{flagicon|GER}} Florian Kastenmeier

| align="left"|Fortuna Düsseldorf

| rowspan=3|9

align="left"|{{flagicon|GER}} Johannes Schenk

| align="left"|Preußen Münster

align="left"|{{flagicon|GER}} Marvin Schwäbe

| align="left"|1. FC Köln

rowspan=5|6

| align="left"|{{flagicon|GER}} Daniel Heuer Fernandes

| align="left"|Hamburger SV

| rowspan=5|8

align="left"|{{flagicon|GER}} Julian Krahl

| align="left"|1. FC Kaiserslautern

align="left"|{{flagicon|GER}} Jan Reichert

| align="left"|1. FC Nürnberg

align="left"|{{flagicon|GER}} Dominik Reimann

| align="left"|1. FC Magdeburg

align="left"|{{flagicon|GER}} Max Weiß

| align="left"|Karlsruher SC

References

{{Reflist}}