The Football Association of Wales Welsh Cup was inagurated in 1877 in the same manner as the F.A. Cup in England. It survives to this day as the primary knock-out competition in the Principality, with European qualification for the winners, but the clubs playing in the English league system have been prevented from competing in the Welsh Cup in recent years.
| Season | Winner | Runner-up | Result | In FCHD |
| 1897-98 | ||||
| 1898-99 | Druids | Wrexham | 2-2, rep 1-0 | |
| 1899-00 | Aberystwyth | Druids | 3-0 | |
| 1900-01 | Oswestry United | Druids | 1-0 | |
| 1901-02 | Wellington Town | Wrexham | 1-0 | |
| 1902-03 | Wrexham | Aberaman Athletic | 8-0 | |
| 1903-04 | Druids | Aberdare Athletic | 3-2 | |
| 1904-05 | Wrexham | Aberdare Athletic | 3-0 | |
| 1905-06 | Wellington Town | Whitchurch | 3-2 | |
| 1906-07 | Oswestry United | Whitchurch | 2-0 | |
| 1907-08 | Chester | Connah's Quay & Shotton | 3-1 | |
| 1908-09 | Wrexham | Chester | 1-0 | |
| 1909-10 | Wrexham | Chester | 2-1 | |
| 1910-11 | Wrexham | Connah's Quay & Shotton | 6-0 | |
| 1911-12 | Cardiff City | Pontypridd | 0-0, rep 3-0 | |
| 1912-13 | Swansea Town | Pontypridd | 0-0, rep 1-0 | |
| 1913-14 | Wrexham | Llanelli | 0-0, rep 3-0 | |
| 1914-15 | Wrexham | Swansea Town | 1-1, rep 1-0 | |
| 1915-19 | Not held due to World War I | |||
| 1919-20 | Cardiff City | Wrexham | 2-1 | |
| 1920-21 | Wrexham | Pontypridd | 1-1, 3-1 | |
| 1921-22 | Cardiff City | Ton Pentre | 2-0 | |
| 1922-23 | Cardiff City | Aberdare Athletic | 3-2 | |
| 1923-24 | Wrexham | Merthyr Tydfil | 2-2, rep 1-0 | |
| 1924-25 | Wrexham | Fflint | 3-1 | |
| 1925-26 | Ebbw Vale | Swansea Town | 3-2 | |
| 1926-27 | Cardiff City | Rhyl | 2-0 | |
| 1927-28 | Cardiff City | Bangor City | 2-0 | |
| 1928-29 | Connah's Quay & Shotton | Cardiff City | 3-0 | |
| 1929-30 | Cardiff City | Rhyl | 0-0, rep 4-2 | |
| 1930-31 | Wrexham | Shrewsbury Town | 7-0 | |
| 1931-32 | Swansea Town | Wrexham | 1-1, rep 2-0 | |
| 1932-33 | Chester | Wrexham | 2-0 | |
| 1933-34 | Bristol City | Tranmere Rovers | 1-1, rep 3-0 | |
| 1934-35 | Tranmere Rovers | Chester | 1-0 | |
| 1935-36 | Crewe Alexandra | Chester | 2-0 | |
| 1936-37 | Crewe Alexandra | Rhyl | 1-1, rep 3-1 | |
| 1937-38 | Shrewsbury Town | Swansea Town | 2-2, rep 2-1 | |
| 1938-39 | South Liverpool | Cardiff City | 2-1 | |
| 1939-40 | Wellington Town | Swansea Town | 4-0 | |
| 1940-46 | Competition not held due to World War II | |||
| 1946-47 | Chester | Merthyr Tydfil | 0-0, rep 5-1 | |
| 1947-48 | Lovell's Athletic | Shrewsbury Town | 3-0 | |
| 1948-49 | Merthyr Tydfil | Swansea Town | 2-0 | |
| 1949-50 | Swansea Town | Wrexham | 4-1 | |
| 1950-51 | Merthyr Tydfil | Cardiff City | 1-1, rep 3-2 | |
| 1951-52 | Rhyl | Merthyr Tydfil | 4-3 | |
| 1952-53 | Rhyl | Chester | 2-1 | |
| 1953-54 | Fflint Town United | Chester | 2-0 | |
| 1954-55 | Barry Town | Chester | 1-1, rep 4-3 | |
| 1955-56 | Cardiff City | Swansea Town | 3-2 | |
| 1956-57 | Wrexham | Swansea Town | 2-1 | |
| 1957-58 | Wrexham | Chester | 1-1, rep 2-1 | |
| 1958-59 | Cardiff City | Lovell's Athletic | 2-0 | |
| 1959-60 | Wrexham | Cardiff City | 1-1, rep 1-0 | |
| 1960-61 | Swansea Town | Bangor City | 3-1 | |
| 1961-62 | Bangor City | Wrexham | Points 2-2, play-off 3-1 | |
| 1962-63 | Borough United | Newport County | Points 3-1 | |
| 1963-64 | Cardiff City | Bangor City | Points 2-2, play-off 2-0 | |
| 1964-65 | Cardiff City | Wrexham | Points 2-2, play-off 3-0 | |
| 1965-66 | Swansea Town | Chester | Points 2-2, play-off 2-1 | |
| 1966-67 | Cardiff City | Wrexham | Points 3-1 | |
| 1967-68 | Cardiff City | Hereford United | Points 4-0 | |
| 1968-69 | Cardiff City | Swansea Town | Points 4-0 | From QF |
| 1969-70 | Cardiff City | Chester | Points 4-0 | |
| 1970-71 | Cardiff City | Wrexham | Points 4-0 | |
| 1971-72 | Wrexham | Cardiff City | Agg 3-2 | |
| 1972-73 | Cardiff City | Bangor City | Agg 5-1 | |
| 1973-74 | Cardiff City | Stourbridge | Agg 2-0 | |
| 1974-75 | Wrexham | Cardiff City | Agg 5-2 | |
| 1975-76 | Cardiff City | Hereford United | Agg 6-5 | |
| 1976-77 | Shrewsbury Town | Cardiff City | Agg 4-2 | |
| 1977-78 | Wrexham | Bangor City | Agg 3-1 | |
| 1978-79 | Shrewsbury Town | Wrexham | Agg 2-1 | |
| 1979-80 | Newport County | Shrewsbury Town | Agg 5-1 | |
| 1980-81 | Swansea City | Hereford United | Agg 2-1 | |
| 1981-82 | Swansea City | Cardiff City | Agg 2-1 | |
| 1982-83 | Swansea City | Wrexham | Agg 4-1 | |
| 1983-84 | Shrewsbury Town | Wrexham | Agg 2-1 | |
| 1984-85 | Shrewsbury Town | Bangor City | Agg 5-1 | |
| 1985-86 | Wrexham | Kidderminster Harriers | 1-1, rep 2-1 | |
| 1986-87 | Merthyr Tydfil | Newport County | 2-2, rep 1-0 | |
| 1987-88 | Cardiff City | Wrexham | 2-0 | From QF |
| 1988-89 | Swansea City | Kidderminster Harriers | 5-0 | |
| 1989-90 | Hereford United | Wrexham | 2-1 | |
| 1990-91 | Swansea City | Wrexham | 2-0 | |
| 1991-92 | Cardiff City | Rhyl | 5-0 | |
| 1992-93 | Cardiff City | Rhyl | 5-0 | |
| 1993-94 | Barry Town | Cardiff City | 2-1 | |
| 1994-95 | Wrexham | Cardiff City | 2-1 | |
| 1995-96 | Llansantffraid | Barry Town | 3-3, 3-2 pens | |
| 1996-97 | Barry Town | Cwmbran Town | 2-1 | |
| 1997-98 | Bangor City | Connah's Quay Nomads | 1-1, 4-2 pens | |
| 1998-99 | Inter Cable-Tel | Carmarthen Town | 1-1, 4-2 pens | From QF |
| 1999-00 | Bangor City | Cwmbran Town | 1-0 | From QF |
| 2000-01 | Barry Town | Total Network Solutions | 2-0 | From QF |
| 2001-02 | Barry Town | Bangor City | 4-1 | From QF |
| 2002-03 | Barry Town | Cwmbran Town | 2-2, 4-3 pens | From QF |
| 2003-04 | Rhyl | Total Network Solutions | 1-0 | From QF |
| 2004-05 | Total Network Solutions | Carmarthen Town | 1-0 | From QF |
| 2005-06 | From QF to date | |||