‡ Match void * After extra time † Penalty Shootout
Season | Winners | Score | Runners-up | Venue |
1873–74 | Queen's Park | Clydesdale | Hampden Park | |
1874–75 | Queen's Park | Renton | Hampden Park | |
1875–76 | Queen's Park | 3rd Lanark RV | Hamilton Crescent | |
Replay |
|
| Hampden Park | |
1876–77 | Vale of Leven | Rangers | Hamilton Crescent | |
Replay |
|
| Hamilton Crescent | |
Second Replay |
|
| Hampden Park | |
1877–78 | Vale of Leven | 3rd Lanark RV | Hampden Park | |
1878–79 | Vale of Leven | Rangers | Hampden Park | |
Replay |
| walkover |
| Hampden Park |
1879–80 | Queen's Park | Thornliebank | Hampden Park | |
1880–81 | Queen's Park | Dumbarton | Kinning Park | |
Replay |
|
| Kinning Park | |
1881–82 | Queen's Park | Dumbarton | Cathkin Park | |
Replay |
|
| Cathkin Park | |
1882–83 | Dumbarton | Vale of Leven | Hampden Park | |
Replay |
|
| Hampden Park | |
1883–84 | Queen's Park | walkover | Vale of Leven | Cathkin Park |
1884–85 | Renton | Vale of Leven | Hampden Park | |
Replay |
|
| Hampden Park | |
1885–86 | Queen's Park | Renton | Cathkin Park | |
1886–87 | Hibernian | Dumbarton | Hampden Park | |
1887–88 | Renton | Cambuslang | Hampden Park | |
1888–89 | 3rd Lanark RV | 3–0 ‡ | Celtic | Hampden Park |
Replay |
|
| Hampden Park | |
1889–90 | Queen's Park | Vale of Leven | Ibrox Park | |
Replay |
|
| Ibrox Park | |
1890–91 | Heart of Midlothian | Dumbarton | Hampden Park | |
1891–92 | Celtic | 1–0 ‡ | Queen's Park | Ibrox Park |
Replay |
|
| Ibrox Park | |
1892–93 | Queen's Park | 0–1 ‡ | Celtic | Ibrox Park |
Replay |
|
| Ibrox Park | |
1893–94 | Rangers | Celtic | Hampden Park | |
1894–95 | St Bernard's | Renton | Ibrox Park | |
1895–96 | Heart of Midlothian | Hibernian | New Logie Green | |
1896–97 | Rangers | Dumbarton | Hampden Park | |
1897–98 | Rangers | Kilmarnock | Hampden Park | |
1898–99 | Celtic | Rangers | Hampden Park | |
1899–1900 | Celtic | Queen's Park | Ibrox Park | |
1900–01 | Heart of Midlothian | Celtic | Ibrox Park | |
1901–02 | Hibernian | Celtic | Celtic Park | |
1902–03 | Rangers | Heart of Midlothian | Celtic Park | |
Replay |
|
| Celtic Park | |
Second Replay |
|
| Celtic Park | |
1903–04 | Celtic | Rangers | Hampden Park | |
1904–05 | Third Lanark | Rangers | Hampden Park | |
Replay |
|
| Hampden Park | |
1905–06 | Heart of Midlothian | Third Lanark | Ibrox Park | |
1906–07 | Celtic | Heart of Midlothian | Hampden Park | |
1907–08 | Celtic | St Mirren | Hampden Park | |
1908-09 | Celtic | Rangers | Hampden Park | |
| Celtic | Rangers | Hampden Park | |
1909–10 | Dundee | Clyde | Ibrox Park | |
Replay |
|
| Ibrox Park | |
Second Replay |
|
| Ibrox Park | |
1910–11 | Celtic | Hamilton Academical | Ibrox Park | |
Replay |
|
| Ibrox Park | |
1911–12 | Celtic | Clyde | Ibrox Park | |
1912–13 | Falkirk | Raith Rovers | Celtic Park | |
1913–14 | Celtic | Hibernian | Ibrox Park | |
Replay |
|
| Ibrox Park | |
1919–20 | Kilmarnock | Albion Rovers | Hampden Park | |
1920–21 | Partick Thistle | Rangers | Celtic Park | |
1921–22 | Morton | Rangers | Hampden Park | |
1922–23 | Celtic | Hibernian | Hampden Park | |
1923–24 | Airdrieonians | Hibernian | Ibrox Park | |
1924–25 | Celtic | Dundee | Hampden Park | |
1925–26 | St Mirren | Celtic | Hampden Park | |
1926–27 | Celtic | East Fife | Hampden Park | |
1927–28 | Rangers | Celtic | Hampden Park | |
1928–29 | Kilmarnock | Rangers | Hampden Park | |
1929–30 | Rangers | Partick Thistle | Hampden Park | |
Replay |
|
| Hampden Park | |
1930–31 | Celtic | Motherwell | Hampden Park | |
Replay |
|
| Hampden Park | |
1931–32 | Rangers | Kilmarnock | Hampden Park | |
Replay |
|
| Hampden Park | |
1932–33 | Celtic | Motherwell | Hampden Park | |
1933–34 | Rangers | St Mirren | Hampden Park | |
1934–35 | Rangers | Hamilton Academical | Hampden Park | |
1935–36 | Rangers | Third Lanark | Hampden Park | |
1936–37 | Celtic | Aberdeen | Hampden Park | |
1937–38 | East Fife | Kilmarnock | Hampden Park | |
Replay |
|
| Hampden Park | |
1938–39 | Clyde | Motherwell | Hampden Park | |
1946–47 | Aberdeen | Hibernian | Hampden Park | |
1947–48 | Rangers | Morton | Hampden Park | |
Replay |
|
| Hampden Park | |
1948–49 | Rangers | Clyde | Hampden Park | |
1949–50 | Rangers | East Fife | Hampden Park | |
1950–51 | Celtic | Motherwell | Hampden Park | |
1951–52 | Motherwell | Dundee | Hampden Park | |
1952–53 | Rangers | Aberdeen | Hampden Park | |
Replay |
|
| Hampden Park | |
1953–54 | Celtic | Aberdeen | Hampden Park | |
1954–55 | Clyde | Celtic | Hampden Park | |
Replay |
|
| Hampden Park | |
1955–56 | Heart of Midlothian | Celtic | Hampden Park | |
1956–57 | Falkirk | Kilmarnock | Hampden Park | |
Replay |
|
| Hampden Park | |
1957–58 | Clyde | Hibernian | Hampden Park | |
1958–59 | St Mirren | Aberdeen | Hampden Park | |
1959–60 | Rangers | Kilmarnock | Hampden Park | |
1960–61 | Dunfermline Athletic | Celtic | Hampden Park | |
Replay |
|
| Hampden Park | |
1961–62 | Rangers | St Mirren | Hampden Park | |
1962–63 | Rangers | Celtic | Hampden Park | |
Replay |
|
| Hampden Park | |
1963–64 | Rangers | Dundee | Hampden Park | |
1964–65 | Celtic | Dunfermline Athletic | Hampden Park | |
1965–66 | Rangers | Celtic | Hampden Park | |
Replay |
|
| Hampden Park | |
1966–67 | Celtic | Aberdeen | Hampden Park | |
1967–68 | Dunfermline Athletic | Heart of Midlothian | Hampden Park | |
1968–69 | Celtic | Rangers | Hampden Park | |
1969–70 | Aberdeen | Celtic | Hampden Park | |
1970–71 | Celtic | Rangers | Hampden Park | |
Replay |
|
| Hampden Park | |
1971–72 | Celtic | Hibernian | Hampden Park | |
1972–73 | Rangers | Celtic | Hampden Park | |
1973–74 | Celtic | Dundee United | Hampden Park | |
1974–75 | Celtic | Airdrieonians | Hampden Park | |
1975–76 | Rangers | Heart of Midlothian | Hampden Park | |
1976–77 | Celtic | Rangers | Hampden Park | |
1977–78 | Rangers | Aberdeen | Hampden Park | |
1978–79 | Rangers | Hibernian | Hampden Park | |
Replay |
|
| Hampden Park | |
Second Replay |
|
| Hampden Park | |
1979–80 | Celtic | Rangers | Hampden Park | |
1980–81 | Rangers | Dundee United | Hampden Park | |
Replay |
|
| Hampden Park | |
1981–82 | Aberdeen | Rangers | Hampden Park | |
1982–83 | Aberdeen | Rangers | Hampden Park | |
1983–84 | Aberdeen | Celtic | Hampden Park | |
1984–85 | Celtic | Dundee United | Hampden Park | |
1985–86 | Aberdeen | Heart of Midlothian | Hampden Park | |
1986–87 | St Mirren | Dundee United | Hampden Park | |
1987–88 | Celtic | Dundee United | Hampden Park | |
1988–89 | Celtic | Rangers | Hampden Park | |
1989–90 | Aberdeen | Celtic | Hampden Park | |
1990–91 | Motherwell | Dundee United | Hampden Park | |
1991–92 | Rangers | Airdrieonians | Hampden Park | |
1992–93 | Rangers | Aberdeen | Celtic Park | |
1993–94 | Dundee United | Rangers | Hampden Park | |
1994–95 | Celtic | Airdrieonians | Hampden Park | |
1995–96 | Rangers | Heart of Midlothian | Hampden Park | |
1996–97 | Kilmarnock | Falkirk | Ibrox Stadium | |
1997–98 | Heart of Midlothian | Rangers | Celtic Park | |
1998–99 | Rangers | Celtic | Hampden Park | |
1999–00 | Rangers | Aberdeen | Hampden Park | |
2000–01 | Celtic | Hibernian | Hampden Park | |
2001–02 | Rangers | Celtic | Hampden Park | |
2002–03 | Rangers | Dundee | Hampden Park | |
2003–04 | Celtic | Dunfermline Athletic | Hampden Park | |
2004–05 | Celtic | Dundee United | Hampden Park | |
2005–06 | Heart of Midlothian | Gretna | Hampden Park | |
2006–07 | Celtic | Dunfermline Athletic | Hampden Park | |
2007–08 | Rangers | Queen of the South | Hampden Park | |
2008–09 | Rangers | Falkirk | Hampden Park | |
2009–10 | Dundee United | Ross County | Hampden Park | |
2010–11 | Celtic | Motherwell | Hampden Park | |
2011–12 | Heart of Midlothian | Hibernian | Hampden Park | |
2012–13 | Celtic | Hibernian | Hampden Park | |
2013–14 | St Johnstone | Dundee United | Celtic Park | |
2014–15 | Inverness Caledonian Thistle | Falkirk | Hampden Park | |
2015–16 | Hibernian | Rangers | Hampden Park | |
2016-17 | Celtic | Aberdeen | Hampden Park | |
2017-18 | Celtic | Motherwell | Hampden Park | |
2018-19 | Celtic | Heart of Midlothian | Hampden Park | |
2019-20 | Celtic | Heart of Midlothian | Hampden Park | |
2020-21 | St Johnstone | Hibernian | Hampden Park | |
2021-22 | Rangers | Heart of Midlothian | Hampden Park | |
2022-23 | Celtic | Inverness Caledonian Thistle | Hampden Park | |
2023-24 | Celtic | 1-0 | Rangers | Hampden Park |
2024-25 | Aberdeen | 1-1† | Celtic | Hampden Park |
2025-26 | Celtic | 3-1 | Dunfermline Athletic | Barclays Hampden |


