| Tournament details | |
|---|---|
| Dates | 23 August 1987 – 11 May 1988 | 
| Teams | 32 (first round) 33 (qualifying) | 
| Final positions | |
| Champions | .svg.png.webp) Mechelen (1st title) | 
| Runners-up |  Ajax | 
| Tournament statistics | |
| Matches played | 63 | 
| Goals scored | 131 (2.08 per match) | 
| Attendance | 957,273 (15,195 per match) | 
| Top scorer(s) | Paulinho Cascavel (Sporting CP) 6 goals | 
The 1987–88 season of the European Cup Winners' Cup finished with a shock victory by Mechelen in the final against defending champions Ajax. This led to their 1988 European Super Cup title in the club's first ever European campaign (1987–89). As the next season's Belgian league victor it defended its title in a semifinal of the 1988–89 European Cup Winners' Cup. Financial problems have been keeping this last Belgian holder of any European cup away from a position to be as successful again.
Preliminary round
| Team 1 | Agg. | Team 2 | 1st leg | 2nd leg | 
|---|---|---|---|---|
| AEL Limassol .svg.png.webp) | 1–6 |  Dunajská Streda | 0–1 | 1–5 | 
First leg
| AEL Limassol .svg.png.webp) | 0–1 |  Dunajská Streda | 
|---|---|---|
| Report | Majoros  66' | 
Second leg
| Dunajská Streda  | 5–1 | .svg.png.webp) AEL Limassol | 
|---|---|---|
| Mičinec  6', 39' J. Medgyes  20' Pavlík  27' Majoros  85' (pen.) | Report | Aristotelous  69' | 
Dunajská Streda won 6–1 on aggregate.
First round
| Team 1 | Agg. | Team 2 | 1st leg | 2nd leg | 
|---|---|---|---|---|
| Mechelen .svg.png.webp) | 3–0 | .svg.png.webp) Dinamo București | 1–0 | 2–0 | 
| St Mirren  | 1–0 |  Tromsø | 1–0 | 0–0 | 
| Real Sociedad  | 2–0 |  Śląsk Wrocław | 0–0 | 2–0 | 
| Dinamo Minsk  | 4–1 |  Gençlerbirliği | 2–0 | 2–1 | 
| Vitosha Sofia .svg.png.webp) | 2–3 |  OFI | 1–0 | 1–3 | 
| Merthyr Tydfil  | 2–3 |  Atalanta | 2–1 | 0–2 | 
| ÍA  | 0–1 |  Kalmar FF | 0–0 | 0–1 (aet) | 
| Sporting CP  | 6–4 |  Swarovski Tirol | 4–0 | 2–4 | 
| Vllaznia .svg.png.webp) | 6–0 |  Sliema Wanderers | 2–0 | 4–0 | 
| RoPS  | 1–1 (a) | .svg.png.webp) Glentoran | 0–0 | 1–1 | 
| Lokomotive Leipzig  | 0–1 |  Marseille | 0–0 | 0–1 | 
| Aalborg BK  | 1–1 (2–4 p) | .svg.png.webp) Hajduk Split | 1–0 | 0–1 (aet) | 
| Újpesti Dózsa  | 2–3 |  Den Haag | 1–0 | 1–3 | 
| Dunajská Streda  | 3–4 | .svg.png.webp) Young Boys | 2–1 | 1–3 | 
| Avenir Beggen  | 0–8 |  Hamburg | 0–5 | 0–3 | 
| Ajax  | 6–0 |  Dundalk | 4–0 | 2–0 | 
First leg
| Vllaznia .svg.png.webp) | 2–0 |  Sliema Wanderers | 
|---|---|---|
| Bushati  53' Jera  68' | Report | 
| Sporting CP  | 4–0 |  Swarovski Tirol | 
|---|---|---|
| Sealy  7', 41' Cascavel  24' (pen.), 83' | Report | 
| Avenir Beggen  | 0–5 |  Hamburg | 
|---|---|---|
| Report | Labbadia  9', 70' Laubinger  44' Okoński  58' Dittmer  83' | 
| Mechelen .svg.png.webp) | 1–0 | .svg.png.webp) Dinamo București | 
|---|---|---|
| den Boer  50' | Report | 
| Dinamo Minsk  | 2–0 |  Gençlerbirliği | 
|---|---|---|
| Zygmantovich  83' Gotsmanov  88' | Report | 
| Vitosha Sofia .svg.png.webp) | 1–0 |  OFI | 
|---|---|---|
| Sirakov  87' (pen.) | Report | 
| Merthyr Tydfil  | 2–1 |  Atalanta | 
|---|---|---|
| Rogers  34' Ceri Williams  82' | Report | Progna  41' | 
| Aalborg BK  | 1–0 | .svg.png.webp) Hajduk Split | 
|---|---|---|
| Boye  63' | Report | 
| Újpesti Dózsa  | 1–0 |  Den Haag | 
|---|---|---|
| Herédi  31' (pen.) | Report | 
| Dunajská Streda  | 2–1 | .svg.png.webp) Young Boys | 
|---|---|---|
| Mičinec  9' Kašpar  37' | Report | Zuffi  22' | 
Second leg
1–1 on aggregate. RoPS won on away goals
Vllaznia won 6–0 on aggregate.
| Dinamo București .svg.png.webp) | 0–2 | .svg.png.webp) Mechelen | 
|---|---|---|
| Report | Hofkens  39' den Boer  71' | 
Mechelen won 3–0 on aggregate.
St Mirren won 1–0 on aggregate.
| Śląsk Wrocław  | 0–2 |  Real Sociedad | 
|---|---|---|
| Report | Loren  76' Begiristain  82' | 
Real Sociedad won 2–0 on aggregate.
| Gençlerbirliği  | 1–2 |  Dinamo Minsk | 
|---|---|---|
| Tuncay  29' | Report | Derkach  69' Kondratiev  84' | 
Dinamo Minsk won 4–1 on aggregate.
| OFI Crete  | 3–1 | .svg.png.webp) Vitosha Sofia | 
|---|---|---|
| Tsimbos  26' Marinakis  48' Charalambidis  68' | Report | Kurdov  71' | 
OFI Crete won 3–2 on aggregate.
| Atalanta  | 2–0 |  Merthyr Tydfil | 
|---|---|---|
| Garlini  16' Cantarutti  21' | Report | 
Atalanta won 3–2 on aggregate.
Kalmar FF won 1–0 on aggregate.
| Swarovski Tirol  | 4–2 |  Sporting CP | 
|---|---|---|
| Marko  16' Roscher  53' Pezzey  69' Linzmaier  85' | Report | Sealy  57' Cascavel  67' | 
Sporting CP won 6–4 on aggregate.
| Marseille  | 1–0 |  Lokomotive Leipzig | 
|---|---|---|
| Allofs  8' | Report | 
Marseille won 1–0 on aggregate.
| Hajduk Split .svg.png.webp) | 1–0 (a.e.t.) |  Aalborg BK | 
|---|---|---|
| Asanović  43' (pen.) | Report | |
| Penalties | ||
| Bursać  Dražić  Miljuš  Asanović  | 4–2 |  Simonsen  Dissing  Boye  Henrik P. Hansen | 
1–1 on aggregate. Hajduk Split won 4–2 on penalties.
Den Haag won 3–2 on aggregate.
| Young Boys .svg.png.webp) | 3–1 |  Dunajská Streda | 
|---|---|---|
| Zuffi  63' Weber  67' Maissen  88' | Report | Majoros  78' | 
Young Boys won 4–3 on aggregate.
Hamburg won 8–0 on aggregate.
Ajax won 6–0 on aggregate.
Second round
| Team 1 | Agg. | Team 2 | 1st leg | 2nd leg | 
|---|---|---|---|---|
| Mechelen .svg.png.webp) | 2–0 |  St Mirren | 0–0 | 2–0 | 
| Real Sociedad  | 1–1 (a) |  Dinamo Minsk | 1–1 | 0–0 | 
| OFI  | 1–2 |  Atalanta | 1–0 | 0–2 | 
| Kalmar FF  | 1–5 |  Sporting CP | 1–0 | 0–5 | 
| Vllaznia .svg.png.webp) | 0–2 |  RoPS | 0–1 | 0–1 | 
| Marseille  | 7–0 | .svg.png.webp) Hajduk Split | 4–0 | 3–01 | 
| Den Haag  | 2–2 (a) | .svg.png.webp) Young Boys | 2–1 | 0–1 | 
| Hamburg  | 0–3 |  Ajax | 0–1 | 0–2 | 
- Notes
- Note 1: With Hajduk Split winning 2–0, the match was interrupted for 15 minutes due to tear gas being thrown onto the stands The match was voided and awarded 3–0 to Marseille due to the crowd trouble.
First leg
| Real Sociedad  | 1–1 |  Dinamo Minsk | 
|---|---|---|
| Gajate  87' | Report | Kondratiev  5' | 
| Kalmar FF  | 1–0 |  Sporting CP | 
|---|---|---|
| T. Arvidsson  88' | Report | 
Second leg
Mechelen won 2–0 on aggregate.
Sporting CP won 5–1 on aggregate.
RoPS won 2–0 on aggregate.
| Young Boys .svg.png.webp) | 1–0 |  Den Haag | 
|---|---|---|
| Fimian  66' | Report | 
2–2 on aggregate. Young Boys won on away goals.
Ajax won 3–0 on aggregate.
1–1 on aggregate. Dinamo Minsk won on away goals.
Atalanta won 2–1 on aggregate.
The match was interrupted in the 10th minute with the score 0–0 due to tear gas being thrown in the stands by Hajduk fans. The resulting commotion was accompanied with the same fans throwing flares onto the pitch followed by a pitch invasion. The match was resumed some 15 minutes later and completed with Hajduk winning 2–0 on the night and Marseille advancing 4–2 on aggregate. At a disciplinary hearing several days later, UEFA voided the match due to the crowd trouble, awarding a 3–0 win to Marseille and banning Hajduk from European competition for two seasons.
Marseille won 7–0 on aggregate.
Quarter-finals
| Team 1 | Agg. | Team 2 | 1st leg | 2nd leg | 
|---|---|---|---|---|
| Mechelen .svg.png.webp) | 2–1 |  Dinamo Minsk | 1–0 | 1–1 | 
| Atalanta  | 3–1 |  Sporting CP | 2–0 | 1–1 | 
| RoPS  | 0–4 |  Marseille | 0–1 | 0–3 | 
| Young Boys .svg.png.webp) | 0–2 |  Ajax | 0–1 | 0–1 | 
First leg
| Mechelen .svg.png.webp) | 1–0 |  Dinamo Minsk | 
|---|---|---|
| De Wilde  86' | Report | 
| Atalanta  | 2–0 |  Sporting CP | 
|---|---|---|
| Nicolini  44' (pen.) Cantarutti  79' | Report | 
| Young Boys .svg.png.webp) | 0–1 |  Ajax | 
|---|---|---|
| Report | Bosman  44' | 
Second leg
| Dinamo Minsk  | 1–1 | .svg.png.webp) Mechelen | 
|---|---|---|
| Kisten  59' | Report | Ohana  29' | 
Mechelen won 2–1 on aggregate.
| Sporting CP  | 1–1 |  Atalanta | 
|---|---|---|
| Houtman  66' | Report | Cantarutti  82' | 
Atalanta won 3–1 on aggregate.
Marseille won 4–0 on aggregate.
| Ajax  | 1–0 | .svg.png.webp) Young Boys | 
|---|---|---|
| Larsson  39' | Report | 
Ajax won 2–0 on aggregate.
Semi-finals
| Team 1 | Agg. | Team 2 | 1st leg | 2nd leg | 
|---|---|---|---|---|
| Mechelen .svg.png.webp) | 4–2 |  Atalanta | 2–1 | 2–1 | 
| Marseille  | 2–4 |  Ajax | 0–3 | 2–1 | 
First leg
| Marseille  | 0–3 |  Ajax | 
|---|---|---|
| Report | Rob Witschge  12', 42' Bergkamp  89' | 
Second leg
Mechelen won 4–2 on aggregate.
Ajax won 4–2 on aggregate.
Final
Top scorers
The top scorers from the 1987–88 UEFA Cup Winners' Cup are as follows:
| Rank | Name | Team | Goals | 
|---|---|---|---|
| 1 | .svg.png.webp) Paulinho Cascavel |  Sporting CP | 6 | 
| 2 |  Klaus Allofs |  Olympique Marseille | 4 | 
|  Piet den Boer | .svg.png.webp) KV Mechelen | 4 | |
|  Eli Ohana | .svg.png.webp) KV Mechelen | 4 | |
|  Jean-Pierre Papin |  Olympique Marseille | 4 | |
|  Tony Sealy |  Sporting CP | 4 | |
| 7 |  Remco Boere |  Den Haag | 3 | 
|  Aldo Cantarutti |  Atalanta | 3 | |
|  Oliviero Garlini |  Atalanta | 3 | |
|  Bruno Labbadia |  Hamburg | 3 | |
|  Juraj Majoroš |  Dunajská Streda | 3 | |
|  Henny Meijer |  Ajax | 3 | |
| .svg.png.webp) Dario Zuffi | .svg.png.webp) Young Boys | 3 |