# 2003–04 Bundesliga

The 2003–04 Bundesliga was the 41st season of the Bundesliga, Germany's premier football league. It began on 1 August 2003 and concluded on 22 May 2004.

## Teams

Eighteen teams competed in the league – the top fifteen teams from the previous season and the three teams promoted from the 2. Bundesliga. The promoted teams were SC Freiburg, 1. FC Köln and Eintracht Frankfurt. SC Freiburg and 1. FC Köln returned to the top flight after an absence of one year while Eintracht Frankfurt returned to the top fight after an absence of two years. They replaced Arminia Bielefeld, 1. FC Nürnberg and Energie Cottbus, ending their top flight spells of one, two and three years respectively.

## Team overview
### Stadiums

| Club | Location | Ground | Capacity |
| Hertha BSC | Berlin | Olympiastadion | 76,000 |
| VfL Bochum | Bochum | Ruhrstadion | 36,000 |
| SV Werder Bremen | Bremen | Weserstadion | 36,000 |
| Borussia Dortmund | Dortmund | Westfalenstadion | 68,600 |
| Eintracht Frankfurt* | Frankfurt | Waldstadion | 62,000 |
| SC Freiburg* | Freiburg | Dreisamstadion | 25,000 |
| Hamburger SV | Hamburg | AOL Arena | 62,000 |
| Hannover 96 | Hanover | Niedersachsenstadion | 60,400 |
| 1. FC Kaiserslautern | Kaiserslautern | Fritz Walter Stadion | 41,500 |
| 1. FC Köln* | Cologne | Müngersdorfer Stadion | 46,000 |
| Bayer 04 Leverkusen | Leverkusen | BayArena | 22,500 |
| Borussia Mönchengladbach | Mönchengladbach | Bökelbergstadion | 34,500 |
| TSV 1860 Munich | Munich | Olympiastadion | 63,000 |
| FC Bayern Munich | Munich | Olympiastadion | 63,000 |
| FC Hansa Rostock | Rostock | Ostseestadion | 25,850 |
| FC Schalke 04 | Gelsenkirchen | Arena AufSchalke | 61,973 |
| VfB Stuttgart | Stuttgart | Gottlieb-Daimler-Stadion | 53,700 |
| VfL Wolfsburg | Wolfsburg | Volkswagen Arena | 30,000 |
(*) Promoted from 2. Bundesliga.

### Personnel and sponsoring

| Team | Manager | Kit manufacturer | Shirt sponsor |
| TSV 1860 Munich | Gerald Vanenburg | Nike | Liqui Moly |
| Bayer 04 Leverkusen | Klaus Augenthaler | Adidas | RWE |
| FC Bayern Munich | Ottmar Hitzfeld | Adidas | T-Mobile/Deutsche Telekom (in UEFA matches) |
| VfL Bochum | Peter Neururer | Nike | DWS |
| Borussia Dortmund | Matthias Sammer | Goool.de | E.ON |
| Borussia Mönchengladbach | Holger Fach | Lotto | Jever |
| Eintracht Frankfurt | Willi Reimann | Jako | Fraport |
| SC Freiburg | Volker Finke | Jako | NaturEnergie |
| Hamburger SV | Klaus Toppmöller | Nike | Abu Dhabi Investment Group |
| Hannover 96 | Ewald Lienen | Uhlsport | TUI Group |
| FC Hansa Rostock | Juri Schlünz | Jako | Vita Cola |
| Hertha BSC | Hans Meyer | Nike | Arcor |
| 1. FC Kaiserslautern | Kurt Jara | Kappa | Deutsche Vermögensberatung |
| 1. FC Köln | Marcel Koller | Saller | funny-frisch |
| FC Schalke 04 | Jupp Heynckes | Adidas | Victoria Versicherung |
| VfB Stuttgart | Felix Magath | Puma | Debitel |
| SV Werder Bremen | Thomas Schaaf | Kappa | Young Spirit |
| VfL Wolfsburg | Jürgen Röber | Puma | Volkswagen |

## League table

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification or relegation |
| 1 | Werder Bremen (C) | 34 | 22 | 8 | 4 | 79 | 38 | +41 | 74 | Qualification to Champions League group stage |
| 2 | Bayern Munich | 34 | 20 | 8 | 6 | 70 | 39 | +31 | 68 | Qualification to Champions League group stage |
| 3 | Bayer Leverkusen | 34 | 19 | 8 | 7 | 73 | 39 | +34 | 65 | Qualification to Champions League third qualifying round |
| 4 | VfB Stuttgart | 34 | 18 | 10 | 6 | 52 | 24 | +28 | 64 | Qualification to UEFA Cup first round |
| 5 | VfL Bochum | 34 | 15 | 11 | 8 | 57 | 39 | +18 | 56 | Qualification to UEFA Cup first round |
| 6 | Borussia Dortmund | 34 | 16 | 7 | 11 | 59 | 48 | +11 | 55 | Qualification to Intertoto Cup third round |
| 7 | Schalke 04 | 34 | 13 | 11 | 10 | 49 | 42 | +7 | 50 | Qualification to Intertoto Cup third round |
| 8 | Hamburger SV | 34 | 14 | 7 | 13 | 47 | 60 | −13 | 49 | Qualification to Intertoto Cup third round |
| 9 | Hansa Rostock | 34 | 12 | 8 | 14 | 55 | 54 | +1 | 44 | |
| 10 | VfL Wolfsburg | 34 | 13 | 3 | 18 | 56 | 61 | −5 | 42 | Qualification to Intertoto Cup second round |
| 11 | Borussia Mönchengladbach | 34 | 10 | 9 | 15 | 40 | 49 | −9 | 39 | |
| 12 | Hertha BSC | 34 | 9 | 12 | 13 | 42 | 59 | −17 | 39 | |
| 13 | SC Freiburg | 34 | 10 | 8 | 16 | 42 | 67 | −25 | 38 | |
| 14 | Hannover 96 | 34 | 9 | 10 | 15 | 49 | 63 | −14 | 37 | |
| 15 | 1. FC Kaiserslautern | 34 | 11 | 6 | 17 | 39 | 62 | −23 | 36 | |
| 16 | Eintracht Frankfurt (R) | 34 | 9 | 5 | 20 | 36 | 53 | −17 | 32 | Relegation to 2. Bundesliga |
| 17 | 1860 Munich (R) | 34 | 8 | 8 | 18 | 32 | 55 | −23 | 32 | Relegation to 2. Bundesliga |
| 18 | 1. FC Köln (R) | 34 | 6 | 5 | 23 | 32 | 57 | −25 | 23 | Relegation to 2. Bundesliga |
* ↑ Hansa Rostock did not apply for Intertoto Cup, so the place was given to VfL Wolfsburg.
* ↑ 1. FC Kaiserslautern were docked three points for financial irregularities.

## Results

| Home \ Away | BSC | BOC | SVW | BVB | SGE | SCF | HSV | H96 | FCK | KOE | B04 | BMG | M60 | FCB | ROS | S04 | VFB | WOB |
| Hertha BSC | — | 1–1 | 0–3 | 6–2 | 1–2 | 0–0 | 1–1 | 2–3 | 3–0 | 3–1 | 1–4 | 2–1 | 1–1 | 1–1 | 1–1 | 1–3 | 1–0 | 1–0 |
| VfL Bochum | 2–2 | — | 0–0 | 3–0 | 1–0 | 3–0 | 1–1 | 3–1 | 4–0 | 4–0 | 1–0 | 1–0 | 4–0 | 1–0 | 0–0 | 1–2 | 0–0 | 1–0 |
| Werder Bremen | 4–0 | 3–1 | — | 2–0 | 3–1 | 1–1 | 6–0 | 0–0 | 1–0 | 3–2 | 2–6 | 1–1 | 2–1 | 1–1 | 3–0 | 4–1 | 1–3 | 5–3 |
| Borussia Dortmund | 1–1 | 4–1 | 2–1 | — | 2–0 | 1–0 | 3–2 | 6–2 | 1–1 | 1–0 | 2–2 | 3–1 | 3–1 | 2–0 | 4–1 | 0–1 | 0–2 | 4–0 |
| Eintracht Frankfurt | 0–0 | 3–2 | 0–1 | 0–1 | — | 3–0 | 2–3 | 2–2 | 1–3 | 2–0 | 1–2 | 3–1 | 0–3 | 1–1 | 1–1 | 3–0 | 0–2 | 3–2 |
| SC Freiburg | 2–3 | 4–2 | 2–4 | 2–2 | 1–0 | — | 0–0 | 4–1 | 1–0 | 3–0 | 1–0 | 4–1 | 1–0 | 0–6 | 2–2 | 2–1 | 0–1 | 3–2 |
| Hamburger SV | 2–0 | 1–1 | 1–1 | 0–2 | 2–1 | 4–1 | — | 0–3 | 3–2 | 4–2 | 3–1 | 2–1 | 3–1 | 0–2 | 2–1 | 2–2 | 2–1 | 2–0 |
| Hannover 96 | 1–3 | 2–2 | 1–5 | 1–1 | 3–0 | 3–0 | 3–2 | — | 0–1 | 1–0 | 2–2 | 2–0 | 1–1 | 3–3 | 3–3 | 1–2 | 0–1 | 0–0 |
| 1. FC Kaiserslautern | 4–2 | 2–2 | 0–1 | 1–1 | 1–0 | 2–2 | 4–0 | 1–0 | — | 1–0 | 0–0 | 2–2 | 0–1 | 0–2 | 3–2 | 0–2 | 1–0 | 3–2 |
| 1. FC Köln | 3–0 | 1–2 | 1–4 | 1–0 | 2–0 | 1–0 | 0–1 | 1–2 | 1–2 | — | 0–0 | 1–0 | 1–3 | 1–2 | 4–0 | 0–2 | 2–2 | 2–3 |
| Bayer Leverkusen | 4–1 | 1–3 | 1–3 | 3–0 | 1–2 | 4–1 | 1–0 | 4–0 | 6–0 | 2–0 | — | 1–0 | 2–2 | 1–3 | 3–0 | 3–1 | 2–0 | 4–2 |
| Borussia Mönchengladbach | 1–1 | 2–2 | 1–2 | 2–1 | 0–2 | 2–2 | 3–0 | 1–0 | 2–1 | 1–0 | 0–0 | — | 3–1 | 0–0 | 1–1 | 2–0 | 0–1 | 0–2 |
| 1860 Munich | 1–1 | 3–1 | 0–2 | 0–2 | 1–0 | 1–1 | 1–2 | 0–2 | 2–1 | 2–1 | 1–1 | 1–2 | — | 0–1 | 1–4 | 1–1 | 0–3 | 1–0 |
| Bayern Munich | 4–1 | 2–0 | 1–3 | 4–1 | 3–1 | 2–0 | 1–0 | 3–1 | 4–1 | 2–2 | 3–3 | 5–2 | 1–0 | — | 3–3 | 2–1 | 1–0 | 2–0 |
| Hansa Rostock | 0–1 | 0–2 | 3–1 | 2–1 | 3–0 | 4–1 | 3–0 | 3–1 | 4–0 | 1–1 | 0–2 | 1–2 | 3–0 | 1–2 | — | 3–1 | 0–2 | 3–1 |
| Schalke 04 | 3–0 | 0–2 | 0–0 | 2–2 | 1–1 | 3–0 | 4–1 | 2–2 | 4–1 | 2–1 | 2–3 | 2–1 | 0–0 | 2–0 | 0–1 | — | 0–0 | 1–1 |
| VfB Stuttgart | 0–0 | 1–1 | 4–4 | 1–0 | 3–1 | 4–1 | 0–0 | 3–1 | 2–0 | 0–0 | 2–3 | 1–1 | 2–0 | 3–1 | 2–0 | 0–0 | — | 1–0 |
| VfL Wolfsburg | 3–0 | 3–2 | 0–2 | 2–4 | 1–0 | 4–0 | 5–1 | 2–1 | 4–1 | 2–0 | 0–1 | 1–3 | 3–1 | 3–2 | 3–1 | 1–1 | 1–5 | — |

## Overall

* Most wins - Werder Bremen (22)
* Fewest wins - 1. FC Köln (6)
* Most draws - Hertha BSC (12)
* Fewest draws - VfL Wolfsburg (3)
* Most losses - 1. FC Köln (23)
* Fewest losses - Werder Bremen (4)
* Most goals scored - Werder Bremen (79)
* Fewest goals scored - 1860 Munich and 1. FC Köln (32)
* Most goals conceded - SC Freiburg (67)
* Fewest goals conceded - VfB Stuttgart (24)

## Top goalscorers

| Rank | Player | Club | Goals |
| 1 | Aílton | Werder Bremen | 28 |
| 2 | Roy Makaay | Bayern Munich | 23 |
| 3 | Martin Max | Hansa Rostock | 20 |
| 4 | Dimitar Berbatov | Bayer Leverkusen | 16 |
| 4 | Vahid Hashemian | VfL Bochum | 16 |
| 4 | Jan Koller | Borussia Dortmund | 16 |
| 4 | Ewerthon | Borussia Dortmund | 16 |
| 8 | Diego Klimowicz | VfL Wolfsburg | 15 |
| 9 | França | Bayer Leverkusen | 14 |
| 10 | Ivan Klasnić | Werder Bremen | 13 |
| 10 | Peter Madsen | VfL Bochum | 13 |