# Luxembourg Cup

The Luxembourg Cup (French: Coupe de Luxembourg) is the national knockout cup competition in Luxembourgian football. It was first held in 1922, and has been held annually since, with the exception of the four seasons during the German occupation during Second World War, though the 2019–20 and 2020–21 seasons were unable to be completed due to the COVID-19 pandemic. The Stade de Luxembourg hosts the final of the tournament.

## Winners

| Year | Winner | Score | Runner-up |
| 1921–22 | Racing Club Luxembourg | 2–0 | Jeunesse Esch |
| 1922–23 | Fola Esch | 3–0 | Union Luxembourg |
| 1923–24 | Fola Esch | 2–0 | Red Boys Differdange |
| 1924–25 | Red Boys Differdange | 1–1 aet 3–0 (R) | Spora Luxembourg |
| 1925–26 | Red Boys Differdange | 5–2 | Union Luxembourg |
| 1926–27 | Red Boys Differdange | 3–2 | Jeunesse Esch |
| 1927–28 | Spora Luxembourg | 2–2 aet 3–3 aet (R) 5–2 (R) | Stade Dudelange |
| 1928–29 | Red Boys Differdange | 5–3 | Spora Luxembourg |
| 1929–30 | Red Boys Differdange | 2–1 | Spora Luxembourg |
| 1930–31 | Red Boys Differdange | 5–3 | Spora Luxembourg |
| 1931–32 | Spora Luxembourg | 2–1 | Red Boys Differdange |
| 1932–33 | Progrès Niedercorn | 4–1 | Union Luxembourg |
| 1933–34 | Red Boys Differdange | 5–2 | Spora Luxembourg |
| 1934–35 | Jeunesse Esch | 4–2 | Red Boys Differdange |
| 1935–36 | Red Boys Differdange | 2–0 | Stade Dudelange |
| 1936–37 | Jeunesse Esch | 3–0 | Union Luxembourg |
| 1937–38 | Stade Dudelange | 1–0 | National Schifflange |
| 1938–39 | US Dudelange | 2–1 | Stade Dudelange |
| 1939–40 | Spora Luxembourg | 6–2 | Stade Dudelange |
| 1940–1944 | Not Held due to World War II | Not Held due to World War II | Not Held due to World War II |
| 1944–45 | Progrès Niedercorn | 2–0 | Spora Luxembourg |
| 1945–46 | Jeunesse Esch | 3–1 | Progrès Niedercorn |
| 1946–47 | Union Luxembourg | 2–1 | Stade Dudelange |
| 1947–48 | Stade Dudelange | 1–0 | Red Boys Differdange |
| 1948–49 | Stade Dudelange | 1–0 | Racing Rodange |
| 1949–50 | Spora Luxembourg | 5–1 | Red Boys Differdange |
| 1950–51 | SC Tétange | 1–1 aet 2–0 (R) | CS Grevenmacher |
| 1951–52 | Red Boys Differdange | 1–0 | Red Star Merl |
| 1952–53 | Red Boys Differdange | 2–1 | CS Grevenmacher |
| 1953–54 | Jeunesse Esch | 5–0 | CS Grevenmacher |
| 1954–55 | Fola Esch | 1–1 aet 4–1 (R) | Red Boys Differdange |
| 1955–56 | Stade Dudelange | 3–1 | Progrès Niedercorn |
| 1956–57 | Spora Luxembourg | 2–1 | Stade Dudelange |
| 1957–58 | Red Boys Differdange | 2–1 | US Dudelange |
| 1958–59 | Union Luxembourg | 3–1 | CS Grevenmacher |
| 1959–60 | National Schifflange | 3–0 | Stade Dudelange |
| 1960–61 | Alliance Dudelange | 3–2 | Union Luxembourg |
| 1961–62 | Alliance Dudelange | 1–0 | Union Luxembourg |
| 1962–63 | Union Luxembourg | 2–1 | Spora Luxembourg |
| 1963–64 | Union Luxembourg | 1–0 | Aris Bonnevoie |
| 1964–65 | Spora Luxembourg | 1–0 | Jeunesse Esch |
| 1965–66 | Spora Luxembourg | 2–0 | Jeunesse Esch |
| 1966–67 | Aris Bonnevoie | 1–0 | Union Luxembourg |
| 1967–68 | US Rumelange | 0–0 aet 1–0 (R) | Aris Bonnevoie |
| 1968–69 | Union Luxembourg | 5–2 | Alliance Dudelange |
| 1969–70 | Union Luxembourg | 1–0 | Red Boys Differdange |
| 1970–71 | Jeunesse Hautcharage | 4–1 | Jeunesse Esch |
| 1971–72 | Red Boys Differdange | 4–3 | Aris Bonnevoie |
| 1972–73 | Jeunesse Esch | 3–2 | Fola Esch |
| 1973–74 | Jeunesse Esch | 4–1 | Avenir Beggen |
| 1974–75 | US Rumelange | 2–0 | Jeunesse Esch |
| 1975–76 | Jeunesse Esch | 2–1 | Aris Bonnevoie |
| 1976–77 | Progrès Niedercorn | 4–4 aet 3–1 (R) | Red Boys Differdange |
| 1977–78 | Progrès Niedercorn | 2–1 | Union Luxembourg |
| 1978–79 | Red Boys Differdange | 4–1 | Aris Bonnevoie |
| 1979–80 | Spora Luxembourg | 3–2 | Progrès Niedercorn |
| 1980–81 | Jeunesse Esch | 5–0 | Olympique Eischen |
| 1981–82 | Red Boys Differdange | 2–1 | US Rumelange |
| 1982–83 | Avenir Beggen | 4–2 | Union Luxembourg |
| 1983–84 | Avenir Beggen | 4–1 | Union Luxembourg |
| 1984–85 | Red Boys Differdange | 1–0 | Jeunesse Esch |
| 1985–86 | Union Luxembourg | 4–1 | Red Boys Differdange |
| 1986–87 | Avenir Beggen | 6–0 | Spora Luxembourg |
| 1987–88 | Jeunesse Esch | 1–0 | Avenir Beggen |
| 1988–89 | Union Luxembourg | 2–0 | Avenir Beggen |
| 1989–90 | Swift Hesperange | 3–3 aet 7–1 (R) | AS Differdange |
| 1990–91 | Union Luxembourg | 3–0 | Jeunesse Esch |
| 1991–92 | Avenir Beggen | 1–0 | CS Pétange |
| 1992–93 | Avenir Beggen | 5–2 | F91 Dudelange |
| 1993–94 | Avenir Beggen | 3–1 | F91 Dudelange |
| 1994–95 | CS Grevenmacher | 1–1 aet 3–2 (R) | Jeunesse Esch |
| 1995–96 | Union Luxembourg | 3–1 | Jeunesse Esch |
| 1996–97 | Jeunesse Esch | 2–0 | Union Luxembourg |
| 1997–98 | CS Grevenmacher | 2–0 | Avenir Beggen |
| 1998–99 | Jeunesse Esch | 3–0 | FC Mondercange |
| 1999–2000 | Jeunesse Esch | 4–1 | FC Mondercange |
| 2000–01 | Etzella Ettelbruck | 5–3 | FC Wiltz 71 |
| 2001–02 | Avenir Beggen | 1–0 | F91 Dudelange |
| 2002–03 | CS Grevenmacher | 1–0 | Etzella Ettelbruck |
| 2003–04 | F91 Dudelange | 3–1 aet | Etzella Ettelbruck |
| 2004–05 | CS Pétange | 5–0 | FC CeBra 01 |
| 2005–06 | F91 Dudelange | 3–2 | Jeunesse Esch |
| 2006–07 | F91 Dudelange | 2–1 | UN Käerjeng 97 |
| 2007–08 | CS Grevenmacher | 4–1 | Victoria Rosport |
| 2008–09 | F91 Dudelange | 5–0 | UN Käerjeng 97 |
| 2009–10 | FC Differdange 03 | 1–0 | CS Grevenmacher |
| 2010–11 | FC Differdange 03 | 1–0 | F91 Dudelange |
| 2011–12 | F91 Dudelange | 4–2 aet | Jeunesse Esch |
| 2012–13 | Jeunesse Esch | 2–1 | Differdange 03 |
| 2013–14 | Differdange 03 | 2–0 | F91 Dudelange |
| 2014–15 | Differdange 03 | 1–1 aet (3–2 pen.) | F91 Dudelange |
| 2015–16 | F91 Dudelange | 1–0 | Mondorf-les-Bains |
| 2016–17 | F91 Dudelange | 4–1 | Fola Esch |
| 2017–18 | Racing FC | 0–0 aet (4–3 pen.) | Hostert |
| 2018–19 | F91 Dudelange | 5–0 | Etzella Ettelbruck |
| 2019–20 | abandoned due to COVID-19 pandemic | abandoned due to COVID-19 pandemic | abandoned due to COVID-19 pandemic |
| 2020–21 | abandoned due to COVID-19 pandemic | abandoned due to COVID-19 pandemic | abandoned due to COVID-19 pandemic |
| 2021–22 | Racing FC | 3–2 | F91 Dudelange |
| 2022–23 | Differdange 03 | 4–2 | Marisca Mersch |
| 2023–24 | Progrès Niederkorn | 1–1 aet (3–1 pen.) | Swift Hesperange |

## Performances
### Performance by club

| Club | Titles | Runners-up | Winning Years |
| FA Red Boys Differdange | 15 | 9 | 1925, 1926, 1927, 1929, 1930, 1931, 1934, 1936, 1952, 1953, 1958, 1972, 1979, 1982, 1985 |
| Jeunesse Esch | 13 | 12 | 1935, 1937, 1946, 1954, 1973, 1974, 1976, 1981, 1988, 1997, 1999, 2000, 2013 |
| Union Luxembourg | 10 | 10 | 1947, 1959, 1963, 1964, 1969, 1970, 1986, 1989, 1991, 1996 |
| CA Spora Luxembourg | 8 | 8 | 1928, 1932, 1940, 1950, 1957, 1965, 1966, 1980 |
| F91 Dudelange | 8 | 7 | 2004, 2006, 2007, 2009, 2012, 2016, 2017, 2019 |
| FC Avenir Beggen | 7 | 4 | 1983, 1984, 1987, 1992, 1993, 1994, 2002 |
| FC Progrès Niedercorn | 5 | 3 | 1933, 1945, 1977, 1978, 2024 |
| FC Differdange 03 | 5 | 1 | 2010, 2011, 2014, 2015, 2023 |
| Stade Dudelange | 4 | 7 | 1938, 1948, 1949, 1956 |
| CS Grevenmacher | 4 | 5 | 1995, 1998, 2003, 2008 |
| CS Fola Esch | 3 | 2 | 1923, 1924, 1955 |
| US Rumelange | 2 | 2 | 1968, 1975 |
| Alliance Dudelange | 2 | 1 | 1961, 1962 |
| Racing FC Union Luxembourg | 2 | - | 2018, 2022 |
| FC Aris Bonnevoie | 1 | 5 | 1967 |
| FC Etzella Ettelbruck | 1 | 2 | 2001 |
| CS Pétange | 1 | 1 | 2005 |
| Swift Hesperange | 1 | 1 | 1990 |
| National Schifflange | 1 | 1 | 1960 |
| US Dudelange | 1 | 1 | 1939 |
| Jeunesse Hautcharage | 1 | - | 1971 |
| Racing Club Luxembourg | 1 | - | 1922 |
| SC Tétange | 1 | - | 1951 |
| FC Mondercange | - | 2 | |
| Racing Rodange | - | 1 | |
| FC CeBra 01 | - | 1 | |
| AS Differdange | - | 1 | |
| Olympique Eischen | - | 1 | |
| Red Star Merl | - | 1 | |
| UN Käerjeng 97 | - | 1 | |
| FC Wiltz 71 | - | 1 | |
| FC Victoria Rosport | - | 1 | |
| Mondorf-les-Bains | - | 1 | |
| Hostert | - | 1 | |
| Marisca Mersch | - | 1 | |
* Teams in italic were dissolved or merged to form a new club.

### Performance by town

| Town | Titles | Runners-up | Teams |
| Luxembourg City | 28 | 28 | 8: Union Luxembourg, CA Spora Luxembourg, FC Avenir Beggen, FC Aris Bonnevoie, Racing Club Luxembourg, Racing FC Union Luxembourg, FC CeBra 01, Red Star Merl |
| Differdange | 20 | 11 | 3: FA Red Boys Differdange, FC Differdange 03, AS Differdange |
| Esch-sur-Alzette | 16 | 14 | 2: Jeunesse Esch, CS Fola Esch |
| Dudelange | 15 | 15 | 4: F91 Dudelange, Stade Dudelange, Alliance Dudelange, US Dudelange |
| Grevenmacher | 4 | 5 | 1: CS Grevenmacher |
| Niederkorn | 4 | 3 | 1: FC Progrès Niederkorn |
| Rumelange | 2 | 2 | 1: US Rumelange |
| Ettelbruck | 1 | 3 | 1: FC Etzella Ettelbruck |
| Pétange | 1 | 1 | 1: CS Pétange |
| Schifflange | 1 | 1 | 1: National Schifflange |
| Hautcharage | 1 | - | 1: Jeunesse Hautcharage |
| Hesperange | 1 | - | 1: Swift Hesperange |
| Tétange | 1 | - | 1: SC Tétange |
| Mondercange | - | 2 | 1: FC Mondercange |
| Bascharage | - | 1 | 1: UN Käerjeng 97 |
| Eischen | - | 1 | 1: Olympique Eischen |
| Rodange | - | 1 | 1: Racing Rodange |
| Rosport | - | 1 | 1: FC Victoria Rosport |
| Wiltz | - | 1 | 1: FC Wiltz 71 |
| Mondorf-les-Bains | - | 1 | 1: US Mondorf-les-Bains |
| Hostert | - | 1 | 1: US Hostert |

### Performance by canton

| Canton | Titles | Runners-up | Towns |
| Esch-sur-Alzette | 59 | 50 | 10: Differdange, Dudelange, Esch-sur-Alzette, Mondercange, Niederkorn, Pétange, Rodange, Rumelange, Schifflange, Tétange |
| Luxembourg | 29 | 29 | 3: Hesperange, Hostert, Luxembourg City |
| Grevenmacher | 4 | 5 | 1: Grevenmacher |
| Capellen | 1 | 2 | 2: Bascharage, Eischen, Hautcharage |
| Diekirch | 1 | 3 | 1: Ettelbruck |
| Echternach | - | 1 | 1: Rosport |
| Wiltz | - | 1 | 1: Wiltz |
| Remich | - | 1 | 1: Mondorf-les-Bains |