# 1987–88 European Cup

The 1987–88 European Cup was the 33rd season of the European Cup club football tournament. The competition was won for the first time by PSV Eindhoven, who defeated two-time winners Benfica in the final at Neckarstadion in Stuttgart. PSV became the first Dutch team to win the title in 15 years. They also set a record by winning only three matches on their route to the Cup, including no wins from the quarter-final onwards.
Porto, the defending champions, were eliminated by Real Madrid in the second round.
English clubs were still banned, following the Heysel Stadium disaster of 1985, so Everton were denied a place in the competition for the second time in three years.

## Teams

| Partizani (1st) | Rapid Wien (1st) | Anderlecht (1st) | CSKA Sredets (1st) |
| Omonia (1st) | Sparta Prague (1st) | AGF Aarhus (1st) | Kuusysi (1st) |
| Bordeaux (1st) | BFC Dynamo (1st) | Bayern Munich (1st) | Olympiacos (1st) |
| MTK (1st) | Fram (1st) | Shamrock Rovers (1st) | Napoli (1st) |
| Jeunesse Esch (1st) | Ħamrun Spartans (1st) | PSV Eindhoven (1st) | Linfield (1st) |
| Lillestrøm (1st) | Górnik Zabrze (1st) | Benfica (1st) | Porto (2nd) |
| Steaua București (1st) | Rangers (1st) | Real Madrid (1st) | Malmö FF (1st) |
| Neuchâtel Xamax (1st) | Galatasaray (1st) | Dynamo Kyiv (1st) | Vardar (5th) |

## Bracket

| First round | First round | First round | First round | Second round | Second round | Second round | Second round | Quarter-finals | Quarter-finals | Quarter-finals | Quarter-finals | | Semi-finals | Semi-finals | Semi-finals | Semi-finals | | Final | Final | |
| Neuchâtel Xamax | 5 | 1 | 6 | | | | | | | | | | | | | | | | | |
| Kuusysi | 0 | 2 | 2 | | | | | | | | | | | | | | | | | |
| Kuusysi | 0 | 2 | 2 | Neuchâtel Xamax | 2 | 0 | 2 | | | | | | | | | | | | | |
| | | | | Bayern Munich | 1 | 2 | 3 | | | | | | | | | | | | | |
| Bayern Munich | 4 | 1 | 5 | Bayern Munich | 1 | 2 | 3 | | | | | | | | | | | | | |
| CSKA | 0 | 0 | 0 | | | | | | | | | | | | | | | | | |
| CSKA | 0 | 0 | 0 | | | | | Bayern Munich | 3 | 0 | 3 | | | | | | | | | |
| | | | | | | | | Real Madrid | 2 | 2 | 4 | | | | | | | | | |
| Real Madrid | 2 | 1 | 3 | | | | | | | | | Real Madrid | 2 | 2 | 4 | | | | | | | |
| Napoli | 0 | 1 | 1 | | | | | | | | | | | | | | | | | |
| Napoli | 0 | 1 | 1 | Real Madrid | 2 | 2 | 4 | | | | | | | | | | | | | |
| | | | | Porto | 1 | 1 | 2 | | | | | | | | | | | | | |
| Porto | 3 | 3 | 6 | Porto | 1 | 1 | 2 | | | | | | | | | | | | | |
| Vardar | 0 | 0 | 0 | | | | | | | | | | | | | | | | | |
| Vardar | 0 | 0 | 0 | | | | | | | | | | Real Madrid | 1 | 0 | 1 | | | | |
| | | | | | | | | | | | | | PSV Eindhoven (a.) | 1 | 0 | 1 | | | | |
| Lillestrøm | 1 | 4 | 5 | | | | | | | | | | | | | | PSV Eindhoven (a.) | 1 | 0 | 1 | | |
| Linfield | 1 | 2 | 3 | | | | | | | | | | | | | | | | | |
| Linfield | 1 | 2 | 3 | Lillestrøm | 0 | 0 | 0 | | | | | | | | | | | | | |
| | | | | Bordeaux | 0 | 1 | 1 | | | | | | | | | | | | | |
| Bordeaux | 2 | 2 | 4 | Bordeaux | 0 | 1 | 1 | | | | | | | | | | | | | |
| BFC Dynamo | 0 | 0 | 0 | | | | | | | | | | | | | | | | | |
| BFC Dynamo | 0 | 0 | 0 | | | | | Bordeaux | 1 | 0 | 1 | | | | | | | | | |
| | | | | | | | | PSV Eindhoven (a.) | 1 | 0 | 1 | | | | | | | | | |
| Rapid Wien | 6 | 1 | 7 | | | | | | | | | PSV Eindhoven (a.) | 1 | 0 | 1 | | | | | | | |
| Ħamrun Spartans | 0 | 0 | 0 | | | | | | | | | | | | | | | | | |
| Ħamrun Spartans | 0 | 0 | 0 | Rapid Wien | 1 | 0 | 1 | | | | | | | | | | | | | |
| | | | | PSV Eindhoven | 2 | 2 | 4 | | | | | | | | | | | | | |
| PSV Eindhoven | 3 | 0 | 3 | PSV Eindhoven | 2 | 2 | 4 | | | | | | | | | | | | | |
| Galatasaray | 0 | 2 | 2 | | | | | | | | | | | | | | | | | |
| Galatasaray | 0 | 2 | 2 | | | | | | | | | | | | | | | PSV Eindhoven (p.) | 0(6) | |
| | | | | | | | | | | | | | | | | | | Benfica | 0(5) | |
| Steaua București | 4 | 0 | 4 | | | | | | | | | | | | | | | | | | Benfica | 0(5) |
| MTK Budapest | 0 | 2 | 2 | | | | | | | | | | | | | | | | | |
| MTK Budapest | 0 | 2 | 2 | Steaua București | 3 | 2 | 5 | | | | | | | | | | | | | |
| | | | | Omonia | 1 | 0 | 1 | | | | | | | | | | | | | |
| Shamrock Rovers | 0 | 0 | 0 | Omonia | 1 | 0 | 1 | | | | | | | | | | | | | |
| Omonia | 1 | 0 | 1 | | | | | | | | | | | | | | | | | |
| Omonia | 1 | 0 | 1 | | | | | Steaua București | 2 | 1 | 3 | | | | | | | | | |
| | | | | | | | | Rangers | 0 | 2 | 2 | | | | | | | | | |
| Dynamo Kyïv | 1 | 0 | 1 | | | | | | | | | Rangers | 0 | 2 | 2 | | | | | | | |
| Rangers | 0 | 2 | 2 | | | | | | | | | | | | | | | | | |
| Rangers | 0 | 2 | 2 | Rangers | 3 | 1 | 4 | | | | | | | | | | | | | |
| | | | | Górnik Zabrze | 1 | 1 | 2 | | | | | | | | | | | | | |
| Olympiacos | 1 | 1 | 2 | Górnik Zabrze | 1 | 1 | 2 | | | | | | | | | | | | | |
| Górnik Zabrze | 1 | 2 | 3 | | | | | | | | | | | | | | | | | |
| Górnik Zabrze | 1 | 2 | 3 | | | | | | | | | | Steaua București | 0 | 0 | 0 | | | | |
| | | | | | | | | | | | | | Benfica | 0 | 2 | 2 | | | | |
| Aarhus | 4 | 0 | 4 | | | | | | | | | | | | | | Benfica | 0 | 2 | 2 | | |
| Jeunesse Esch | 1 | 1 | 2 | | | | | | | | | | | | | | | | | |
| Jeunesse Esch | 1 | 1 | 2 | Aarhus | 0 | 0 | 0 | | | | | | | | | | | | | |
| | | | | Benfica | 0 | 1 | 1 | | | | | | | | | | | | | |
| Benfica | 4 | - | w | Benfica | 0 | 1 | 1 | | | | | | | | | | | | | |
| Partizani | 0 | - | o | | | | | | | | | | | | | | | | | |
| Partizani | 0 | - | o | | | | | Benfica | 2 | 0 | 2 | | | | | | | | | |
| | | | | | | | | Anderlecht | 0 | 1 | 1 | | | | | | | | | |
| Fram | 0 | 0 | 0 | | | | | | | | | Anderlecht | 0 | 1 | 1 | | | | | | | |
| Sparta Praha | 2 | 8 | 10 | | | | | | | | | | | | | | | | | |
| Sparta Praha | 2 | 8 | 10 | Sparta Praha | 1 | 0 | 1 | | | | | | | | | | | | | |
| | | | | Anderlecht | 2 | 1 | 3 | | | | | | | | | | | | | |
| Malmö FF | 0 | 0 | 0 | Anderlecht | 2 | 1 | 3 | | | | | | | | | | | | | |
| Anderlecht | 1 | 0 | 1 | | | | | | | | | | | | | | | | | |

## First round

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Neuchâtel Xamax | 6–2 | Kuusysi | 5–0 | 1–2 |
| Bayern Munich | 5–0 | CSKA Sredets | 4–0 | 1–0 |
| Real Madrid | 3–1 | Napoli | 2–0 | 1–1 |
| Porto | 6–0 | Vardar | 3–0 | 3–0 |
| Lillestrøm | 5–3 | Linfield | 1–1 | 4–2 |
| Bordeaux | 4–0 | BFC Dynamo | 2–0 | 2–0 |
| Rapid Wien | 7–0 | Ħamrun Spartans | 6–0 | 1–0 |
| PSV Eindhoven | 3–2 | Galatasaray | 3–0 | 0–2 |
| Steaua București | 4–2 | MTK | 4–0 | 0–2 |
| Shamrock Rovers | 0–1 | Omonia | 0–1 | 0–0 |
| Dynamo Kyiv | 1–2 | Rangers | 1–0 | 0–2 |
| Olympiacos | 2–3 | Górnik Zabrze | 1–1 | 1–2 |
| AGF Aarhus | 4–2 | Jeunesse Esch | 4–1 | 0–1 |
| Benfica | 4–0 | Partizani | 4–0 | (w/o)$^1$ |
| Fram | 0–10 | Sparta Prague | 0–2 | 0–8 |
| Malmö FF | 1–2 | Anderlecht | 0–1 | 1–1 |
$^1$ Partizani Tirana were disqualified due to the behaviour of their players and officials, including having four players sent off in their first leg.

### Second leg

Neuchâtel Xamax won 6–2 on aggregate.
Bayern Munich won 5–0 on aggregate.
Real Madrid won 3–1 on aggregate.
Porto won 6–0 on aggregate.
Lillestrøm won 5–3 on aggregate.
Bordeaux won 4–0 on aggregate.
Rapid Wien won 7–0 on aggregate.
PSV Eindhoven won 3–2 on aggregate.
Steaua București won 4–2 on aggregate.
Omonia won 1–0 on aggregate.
Rangers won 2–1 on aggregate.
Górnik Zabrze won 3–2 on aggregate.
AGF Aarhus won 4–2 on aggregate.
Partizani were disqualified due to the behaviour of their players and officials, having four players sent off in their first leg. Benfica qualified on a walkover.
Sparta Prague won 10–0 on aggregate.
Anderlecht won 2–1 on aggregate.

## Second round

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Neuchâtel Xamax | 2–3 | Bayern Munich | 2–1 | 0–2 |
| Real Madrid | 4–2 | Porto | 2–1 | 2–1 |
| Lillestrøm | 0–1 | Bordeaux | 0–0 | 0–1 |
| Rapid Wien | 1–4 | PSV Eindhoven | 1–2 | 0–2 |
| Steaua București | 5–1 | Omonia | 3–1 | 2–0 |
| Rangers | 4–2 | Górnik Zabrze | 3–1 | 1–1 |
| AGF Aarhus | 0–1 | Benfica | 0–0 | 0–1 |
| Sparta Prague | 1–3 | Anderlecht | 1–2 | 0–1 |

### Second leg

Bayern Munich won 3–2 on aggregate.
Real Madrid won 4–2 on aggregate.
Bordeaux won 1–0 on aggregate.
PSV Eindhoven won 4–1 on aggregate.
Steaua București won 5–1 on aggregate.
Rangers won 4–2 on aggregate.
Benfica won 1–0 on aggregate.
Anderlecht won 3–1 on aggregate.

## Quarter-finals

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Bayern Munich | 3–4 | Real Madrid | 3–2 | 0–2 |
| Bordeaux | 1–1 (a) | PSV Eindhoven | 1–1 | 0–0 |
| Steaua București | 3–2 | Rangers | 2–0 | 1–2 |
| Benfica | 2–1 | Anderlecht | 2–0 | 0–1 |

### Second leg

Real Madrid won 4–3 on aggregate.
1–1 on aggregate; PSV Eindhoven won on away goals.
Steaua București won 3–2 on aggregate.
Benfica won 2–1 on aggregate.

## Semi-finals

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Real Madrid | 1–1 (a) | PSV Eindhoven | 1–1 | 0–0 |
| Steaua București | 0–2 | Benfica | 0–0 | 0–2 |

### Second leg

1–1 on aggregate; PSV Eindhoven won on away goals.
Benfica won 2–0 on aggregate.

## Top scorers

The top scorers from the 1987–88 European Cup are as follows:
| Rank | Name | Team | Goals | Minutes played |
| 1 | Petar Novák | Sparta Prague | 4 | 185 |
| 1 | René van der Gijp | Neuchâtel Xamax | 4 | 270 |
| 1 | Rabah Madjer | Porto | 4 | 349 |
| 1 | Ally McCoist | Rangers | 4 | 435 |
| 1 | Rui Águas | Benfica | 4 | 597 |
| 1 | Gheorghe Hagi | Steaua București | 4 | 675 |
| 1 | Míchel | Real Madrid | 4 | 720 |
| 8 | Jürgen Wegmann | Bayern Munich | 3 | 179 |
| 8 | Jean-Marc Ferreri | Bordeaux | 3 | 345 |
| 8 | Ivan Hašek | Sparta Prague | 3 | 360 |
| 8 | Zlatko Kranjčar | Rapid Wien | 3 | 360 |
| 8 | António Sousa | Porto | 3 | 360 |
| 8 | Zoran Stojadinović | Rapid Wien | 3 | 360 |
| 8 | Hugo Sánchez | Real Madrid | 3 | 450 |
| 8 | Patrick Vervoort | Anderlecht | 3 | 495 |
| 8 | Marius Lăcătuș | Steaua București | 3 | 578 |
| 8 | Hans Gillhaus | PSV Eindhoven | 3 | 647 |