# 1990 FIFA World Cup knockout stage

The knockout stage of the 1990 FIFA World Cup was the second and final stage of the final tournament, following the group stage. It began on 23 June with the round of 16 matches, and ended on 8 July with the final held at the Stadio Olimpico in Rome, in which West Germany beat the defending champions Argentina 1–0 to claim their third World Cup.
Sixteen teams advanced to the knockout stage to compete in a single-elimination style tournament: The top two teams from each of the six groups, as well as the best four third-placed teams. In the round of 16, the four third-placed teams played against four of the group winners from group A-D, with the remaining two group winners from group E and F taking on two of the group runners-up; the remaining four runners-up were paired off against each other. The winners of the eight round of 16 matches were then paired together in the quarter-finals, the winners of which played against each other in the semi-finals.
The ties in each round were played over a single match; in the event that scores were level after 90 minutes, the teams would play an additional 30 minutes of extra time, divided into two 15-minute halves, to determine the winner. If the scores remained level after extra time, the teams would contest a penalty shootout.
A third place match was also held on the day before the final, between the two losing teams of the semi-finals.
All times listed are local (UTC+2)

## Qualified teams

The top two placed teams from each of the six groups, plus the four best-placed third teams, qualified for the knockout stage.
| Group | Winners | Runners-up | Third-placed teams (Best four qualify) |
| A | Italy | Czechoslovakia | — |
| B | Cameroon | Romania | Argentina |
| C | Brazil | Costa Rica | — |
| D | West Germany | Yugoslavia | Colombia |
| E | Spain | Belgium | Uruguay |
| F | England | Republic of Ireland | Netherlands |
Based on group results, the matches would be the following in Round of 16:
| Round of 16 | Teams per qualified group positions | Teams identified |
| Match 1: | C1 – A3/B3/F3 | Brazil – Argentina |
| Match 2: | E1 – D2 | Spain – Yugoslavia |
| Match 3: | B2 – F2 | Romania – Ireland |
| Match 4: | A1 – C3/D3/E3 | Italy – Uruguay |
| Match 5: | A2 – C2 | Czechoslovakia – Costa Rica |
| Match 6: | D1 – B3/E3/F3 | West Germany – Netherlands |
| Match 7: | B1 – A3/C3/D3 | Cameroon – Colombia |
| Match 8: | F1 – E2 | England – Belgium |
The pairings for matches 1, 4, 6 and 7 depend on who the best third places are that qualify for the round of 16. The following table published in Section 28 of the tournament regulations, shows the different options to define the opponents for the winners of groups A, B, C and D.
| Third teams qualify from groups: | Italy (A1) plays vs.: | Cameroon (B1) plays vs.: | Brazil (C1) plays vs.: | West Germany (D1) plays vs.: |
| A B C D | C3 | D3 | A3 | B3 |
| A B C E | C3 | A3 | B3 | E3 |
| A B C F | C3 | A3 | B3 | F3 |
| A B D E | D3 | A3 | B3 | E3 |
| A B D F | D3 | A3 | B3 | F3 |
| A B E F | E3 | A3 | B3 | F3 |
| A C D E | C3 | D3 | A3 | E3 |
| A C D F | C3 | D3 | A3 | F3 |
| A C E F | C3 | A3 | F3 | E3 |
| A D E F | D3 | A3 | F3 | E3 |
| B C D E | C3 | D3 | B3 | E3 |
| B C D F | C3 | D3 | B3 | F3 |
| B C E F | E3 | C3 | B3 | F3 |
| B D E F | E3 | D3 | B3 | F3 |
| C D E F | C3 | D3 | F3 | E3 |

## Bracket

| Round of 16 | Round of 16 | Quarter-finals | Quarter-finals | | Semi-finals | Semi-finals | | Final | Final |
| 24 June – Turin | 24 June – Turin | | | | | | |
| Brazil | 0 | | | | | | |
| Brazil | 0 | 30 June – Florence | 30 June – Florence | | | | | |
| Argentina | 1 | 30 June – Florence | 30 June – Florence | | | | |
| Argentina | 1 | Argentina (p) | 0 (3) | | | | |
| 26 June – Verona | 26 June – Verona | | Argentina (p) | 0 (3) | | | | |
| 26 June – Verona | 26 June – Verona | Yugoslavia | 0 (2) | | | | |
| Spain | 1 | Yugoslavia | 0 (2) | | | | |
| Spain | 1 | | | | 3 July – Naples | 3 July – Naples | | |
| Yugoslavia (a.e.t.) | 2 | | | | 3 July – Naples | 3 July – Naples | |
| Yugoslavia (a.e.t.) | 2 | | | | Argentina (p) | 1 (4) | |
| 25 June – Genoa | 25 June – Genoa | | | | | Argentina (p) | 1 (4) | |
| 25 June – Genoa | 25 June – Genoa | | | | Italy | 1 (3) | |
| Republic of Ireland (p) | 0 (5) | | | | Italy | 1 (3) | |
| Republic of Ireland (p) | 0 (5) | 30 June – Rome | 30 June – Rome | | | | | |
| Romania | 0 (4) | 30 June – Rome | 30 June – Rome | | | | |
| Romania | 0 (4) | Republic of Ireland | 0 | | | | |
| 25 June – Rome | 25 June – Rome | | Republic of Ireland | 0 | | | | |
| 25 June – Rome | 25 June – Rome | Italy | 1 | | | | |
| Italy | 2 | Italy | 1 | | | | |
| Italy | 2 | | | | | | | 8 July – Rome | 8 July – Rome |
| Uruguay | 0 | | | | | | | 8 July – Rome | 8 July – Rome |
| Uruguay | 0 | | | | | | | Argentina | 0 |
| 23 June – Bari | 23 June – Bari | | | | | | | | Argentina | 0 |
| 23 June – Bari | 23 June – Bari | | | | | | | West Germany | 1 |
| Czechoslovakia | 4 | | | | | | | West Germany | 1 |
| Czechoslovakia | 4 | 1 July – Milan | 1 July – Milan | | | | | | |
| Costa Rica | 1 | 1 July – Milan | 1 July – Milan | | | | | | |
| Costa Rica | 1 | Czechoslovakia | 0 | | | | | | |
| 24 June – Milan | 24 June – Milan | | Czechoslovakia | 0 | | | | | | |
| 24 June – Milan | 24 June – Milan | West Germany | 1 | | | | | | |
| West Germany | 2 | West Germany | 1 | | | | | | |
| West Germany | 2 | | | | 4 July – Turin | 4 July – Turin | | | | |
| Netherlands | 1 | | | | 4 July – Turin | 4 July – Turin | | | |
| Netherlands | 1 | | | | West Germany (p) | 1 (4) | | | |
| 23 June – Naples | 23 June – Naples | | | | | West Germany (p) | 1 (4) | | | |
| 23 June – Naples | 23 June – Naples | | | | England | 1 (3) | | Third place play-off | Third place play-off |
| Cameroon (a.e.t.) | 2 | | | | England | 1 (3) | | Third place play-off | Third place play-off |
| Cameroon (a.e.t.) | 2 | 1 July – Naples | 1 July – Naples | | | | | 7 July – Bari | 7 July – Bari |
| Colombia | 1 | 1 July – Naples | 1 July – Naples | | | | | 7 July – Bari | 7 July – Bari |
| Colombia | 1 | Cameroon | 2 | | | | | Italy | 2 |
| 26 June – Bologna | 26 June – Bologna | | Cameroon | 2 | | | | | Italy | 2 |
| 26 June – Bologna | 26 June – Bologna | England (a.e.t.) | 3 | | | | | England | 1 |
| England (a.e.t.) | 1 | England (a.e.t.) | 3 | | | | | England | 1 |
| Belgium | 0 | | | | | | | | |

## Round of 16
### Cameroon vs Colombia

| Cameroon | Colombia |
| GK | 16 | Thomas N'Kono |
| SW | 17 | Victor N'Dip | 47' |
| DF | 14 | Stephen Tataw (c) |
| DF | 3 | Jules Onana | 117' |
| DF | 2 | André Kana-Biyik | 44' |
| DF | 5 | Bertin Ebwellé |
| MF | 8 | Emile M'Bouh | 68' |
| MF | 21 | Emmanuel Maboang |
| MF | 10 | Louis-Paul Mfédé | | 54' |
| FW | 7 | François Omam-Biyik |
| FW | 20 | Cyril Makanaky | | 69' |
| Substitutes: ||
| DF | 4 | Benjamin Massing |
| DF | 6 | Emmanuel Kundé |
| FW | 9 | Roger Milla | | 54' |
| FW | 18 | Bonaventure Djonkep | | 69' |
| GK | 22 | Jacques Songo'o |
| Manager: ||
| Valery Nepomnyashchy ||
| GK | 1 | René Higuita |
| DF | 4 | Luis Fernando Herrera |
| DF | 15 | Luis Carlos Perea | 72' |
| DF | 2 | Andrés Escobar |
| DF | 3 | Gildardo Gómez |
| MF | 8 | Gabriel Gómez | 74' | 79' |
| MF | 14 | Leonel Álvarez |
| MF | 20 | Luis Fajardo | | 63' |
| MF | 10 | Carlos Valderrama (c) |
| FW | 19 | Freddy Rincón |
| FW | 7 | Carlos Estrada |
| Substitutes: ||
| FW | 9 | Miguel Guerrero |
| MF | 11 | Bernardo Redín | | 79' |
| GK | 12 | Eduardo Niño |
| FW | 16 | Arnoldo Iguarán | | 63' |
| DF | 21 | Alexis Mendoza |
| Manager: ||
| Francisco Maturana ||
* Assistant referees:
* Jamal Al Sharif (Syria)
* Berny Ulloa Morera (Costa Rica)

### Czechoslovakia vs Costa Rica

| Czechoslovakia | Costa Rica |
| GK | 1 | Jan Stejskal |
| DF | 5 | Ján Kocian | 56' |
| DF | 3 | Miroslav Kadlec |
| DF | 9 | Luboš Kubík |
| DF | 6 | František Straka | 68' |
| MF | 4 | Ivan Hašek (c) | 53' |
| MF | 11 | Ľubomír Moravčík |
| MF | 8 | Jozef Chovanec |
| MF | 7 | Michal Bílek |
| FW | 10 | Tomáš Skuhravý |
| FW | 17 | Ivo Knoflíček |
| Substitutions: ||
| MF | 14 | Vladimír Weiss |
| MF | 18 | Milan Luhový |
| FW | 19 | Stanislav Griga |
| MF | 20 | Václav Němeček |
| GK | 21 | Luděk Mikloško |
| Manager: ||
| Jozef Vengloš ||
| GK | 21 | Hermidio Barrantes |
| DF | 3 | Róger Flores (c) |
| DF | 4 | Rónald González Brenes | 6' |
| DF | 20 | Mauricio Montero |
| DF | 5 | Marvin Obando | | 46' |
| DF | 6 | José Carlos Chaves |
| MF | 8 | Germán Chavarría | | 65' |
| MF | 19 | Héctor Marchena | 75' |
| MF | 14 | Juan Cayasso |
| FW | 10 | Óscar Ramírez |
| FW | 11 | Claudio Jara |
| Substitutions: ||
| FW | 7 | Hernán Medford | | 46' |
| FW | 9 | Alexandre Guimarães | | 65' |
| MF | 17 | Roy Myers |
| DF | 18 | Geovanny Jara |
| GK | 22 | Miguel Segura |
| Manager: ||
| Bora Milutinović ||
* Assistant referees:
* Armando Pérez Hoyos (Colombia)
* Pietro d'Elia (Italy)

### Brazil vs Argentina

Brazil dominated for most of the match, but Diego Maradona went on a trademark run from the halfway line to the edge of the penalty area late in the match, and found Claudio Caniggia, who rounded the onrushing Cláudio Taffarel to give Argentina a lead that they would not relinquish.
| Brazil | Argentina |
| GK | 1 | Cláudio Taffarel |
| SW | 21 | Mauro Galvão | 50' | 84' |
| CB | 19 | Ricardo Rocha | 40' |
| CB | 3 | Ricardo Gomes (c) | 85' |
| RM | 2 | Jorginho |
| CM | 4 | Dunga |
| CM | 5 | Alemão | | 84' |
| LM | 6 | Branco |
| AM | 8 | Valdo |
| FW | 15 | Müller |
| FW | 9 | Careca |
| Substitutes: ||
| AM | 10 | Paulo Silas | | 84' |
| CB | 13 | Carlos Mozer |
| FW | 17 | Renato Gaúcho | | 84' |
| RM | 18 | Mazinho |
| GK | 22 | Zé Carlos |
| Manager: ||
| Sebastião Lazaroni ||
| GK | 12 | Sergio Goycochea | 87' |
| SW | 20 | Juan Simón |
| DF | 15 | Pedro Monzón | 27' |
| DF | 19 | Oscar Ruggeri |
| MF | 4 | José Basualdo |
| MF | 21 | Pedro Troglio | | 61' |
| MF | 14 | Ricardo Giusti | 28' |
| MF | 16 | Julio Olarticoechea |
| MF | 7 | Jorge Burruchaga |
| FW | 8 | Claudio Caniggia |
| FW | 10 | Diego Maradona (c) |
| Substitutes: ||
| MF | 2 | Sergio Batista |
| MF | 6 | Gabriel Calderón | | 61' |
| FW | 9 | Gustavo Dezotti |
| DF | 13 | Néstor Lorenzo |
| GK | 22 | Fabián Cancelarich |
| Manager: ||
| Carlos Bilardo ||
* Assistant referees:
* Alexey Spirin (Soviet Union)
* Pierluigi Pairetto (Italy)

### West Germany vs Netherlands

| West Germany | Netherlands |
| GK | 1 | Bodo Illgner |
| SW | 5 | Klaus Augenthaler |
| RB | 2 | Stefan Reuter |
| CB | 4 | Jürgen Kohler |
| CB | 14 | Thomas Berthold |
| LB | 3 | Andreas Brehme |
| MF | 7 | Pierre Littbarski |
| MF | 10 | Lothar Matthäus (c) | 77' |
| MF | 6 | Guido Buchwald |
| FW | 9 | Rudi Völler | 21' 22' |
| FW | 18 | Jürgen Klinsmann | | 77' |
| Substitutes: ||
| GK | 12 | Raimond Aumann |
| FW | 13 | Karl-Heinz Riedle | | 77' |
| DF | 16 | Paul Steiner |
| MF | 17 | Andreas Möller |
| MF | 20 | Olaf Thon |
| Manager: ||
| Franz Beckenbauer ||
| GK | 1 | Hans van Breukelen |
| RB | 2 | Berry van Aerle | | 66' |
| CB | 4 | Ronald Koeman |
| CB | 3 | Frank Rijkaard | 21' 22' |
| LB | 5 | Adri van Tiggelen |
| MF | 14 | John van 't Schip |
| MF | 6 | Jan Wouters | 32' |
| MF | 20 | Aron Winter |
| MF | 11 | Richard Witschge | | 78' |
| FW | 9 | Marco van Basten | 72' |
| FW | 10 | Ruud Gullit (c) |
| Substitutes: ||
| FW | 12 | Wim Kieft | | 66' |
| DF | 13 | Graeme Rutjes | | |
| GK | 16 | Joop Hiele | | |
| FW | 17 | Hans Gillhaus | | 78' |
| DF | 21 | Danny Blind | | |
| Manager: ||
| Leo Beenhakker ||
* Assistant referees:
* Elías Jácome (Ecuador)
* Vincent Mauro (United States)

### Republic of Ireland vs Romania

| Republic of Ireland | Romania |
| GK | 1 | Packie Bonner |
| CB | 4 | Mick McCarthy (c) |
| CB | 7 | Paul McGrath | 108' |
| CB | 5 | Kevin Moran |
| RWB | 2 | Chris Morris |
| LWB | 3 | Steve Staunton | | 94' |
| CM | 8 | Ray Houghton |
| CM | 13 | Andy Townsend |
| AM | 11 | Kevin Sheedy |
| CF | 9 | John Aldridge | 21' | 22' |
| CF | 17 | Niall Quinn |
| Substitutes: ||
| DF | 6 | Ronnie Whelan |
| FW | 10 | Tony Cascarino | | 22' |
| DF | 12 | David O'Leary | | 94' |
| MF | 16 | John Sheridan |
| GK | 22 | Gerry Peyton |
| Manager: ||
| Jack Charlton ||
| GK | 1 | Silviu Lung (c) |
| SW | 6 | Gheorghe Popescu |
| DF | 4 | Ioan Andone |
| DF | 21 | Ioan Lupescu |
| MF | 2 | Mircea Rednic |
| MF | 8 | Ioan Sabău | | 98' |
| MF | 10 | Gheorghe Hagi | 111' |
| MF | 5 | Iosif Rotariu |
| MF | 3 | Michael Klein |
| FW | 18 | Gavril Balint |
| FW | 14 | Florin Răducioiu | | 74' |
| Substitutes: ||
| FW | 9 | Rodion Cămătaru |
| MF | 11 | Dănuț Lupu | 114' | 74' |
| GK | 12 | Bogdan Stelea |
| MF | 16 | Daniel Timofte | | 98' |
| DF | 19 | Emil Săndoi |
| Manager: ||
| Emerich Jenei ||
* Assistant referees:
* Carlos Maciel (Paraguay)
* Jassim Mandi (Bahrain)

### Italy vs Uruguay

| Italy | Uruguay |
| GK | 1 | Walter Zenga |
| SW | 2 | Franco Baresi |
| DF | 3 | Giuseppe Bergomi (c) |
| DF | 6 | Riccardo Ferri |
| MF | 4 | Luigi De Agostini |
| MF | 10 | Nicola Berti | 36' | 52' |
| MF | 11 | Fernando De Napoli |
| MF | 13 | Giuseppe Giannini |
| MF | 7 | Paolo Maldini |
| FW | 15 | Roberto Baggio | | 79' |
| FW | 19 | Salvatore Schillaci |
| Substitutes: ||
| DF | 8 | Pietro Vierchowod | | 79' |
| MF | 9 | Carlo Ancelotti |
| GK | 12 | Stefano Tacconi |
| MF | 20 | Aldo Serena | | 52' |
| FW | 21 | Gianluca Vialli |
| Manager: ||
| Azeglio Vicini ||
| GK | 1 | Fernando Álvez | 26' |
| DF | 2 | Nelson Gutiérrez | 65' |
| DF | 3 | Hugo de León |
| DF | 6 | Alfonso Domínguez |
| DF | 14 | José Pintos Saldanha | 14' |
| MF | 20 | Ruben Pereira |
| MF | 9 | Enzo Francescoli (c) |
| MF | 8 | Santiago Ostolaza | | 79' |
| MF | 5 | José Perdomo | 35' |
| FW | 19 | Daniel Fonseca |
| FW | 18 | Carlos Aguilera | | 55' |
| Substitutes: ||
| MF | 7 | Antonio Alzamendi | | 79' |
| FW | 11 | Rubén Sosa | | 55' |
| DF | 13 | Daniel Revelez |
| MF | 16 | Pablo Bengoechea |
| GK | 22 | Javier Zeoli |
| Manager: ||
| Óscar Tabárez ||
* Assistant referees:
* Kurt Röthlisberger (Switzerland)
* Zoran Petrović (Yugoslavia)

### Spain vs Yugoslavia

| Spain | Yugoslavia |
| GK | 1 | Andoni Zubizarreta |
| SW | 4 | Genar Andrinúa | | 49' |
| DF | 14 | Alberto Górriz |
| DF | 5 | Manuel Sanchís |
| MF | 2 | Chendo | 110' |
| MF | 21 | Míchel |
| MF | 15 | Roberto | 92' |
| MF | 6 | Rafael Martín Vázquez |
| MF | 11 | Francisco Villarroya |
| FW | 19 | Julio Salinas |
| FW | 9 | Emilio Butragueño (c) | | 79' |
| Substitutions: ||
| DF | 3 | Manuel Jiménez | | 49' |
| FW | 7 | Miguel Pardeza |
| DF | 12 | Rafael Alkorta |
| GK | 13 | Juan Carlos Ablanedo |
| MF | 18 | Rafael Paz | | 79' |
| Manager: ||
| Luis Suárez ||
| GK | 1 | Tomislav Ivković |
| SW | 5 | Faruk Hadžibegić |
| DF | 16 | Refik Šabanadžović |
| DF | 3 | Predrag Spasić |
| MF | 10 | Dragan Stojković |
| MF | 13 | Srečko Katanec | 7' | 79' |
| MF | 6 | Davor Jozić |
| MF | 8 | Safet Sušić |
| MF | 7 | Dragoljub Brnović |
| FW | 9 | Darko Pančev | | 55' |
| FW | 11 | Zlatko Vujović (c) | 60' |
| Substitutions: ||
| DF | 4 | Zoran Vulić | 97' | 79' |
| GK | 12 | Fahrudin Omerović |
| MF | 15 | Robert Prosinečki |
| MF | 17 | Robert Jarni |
| MF | 19 | Dejan Savićević | | 55' |
| Manager: ||
| Ivica Osim ||
* Assistant referees:
* Alan Snoddy (Northern Ireland)
* Michał Listkiewicz (Poland)

### England vs Belgium

| England | Belgium |
| GK | 1 | Peter Shilton |
| SW | 14 | Mark Wright |
| RB | 12 | Paul Parker |
| CB | 5 | Des Walker |
| CB | 6 | Terry Butcher (c) |
| LB | 3 | Stuart Pearce |
| RM | 8 | Chris Waddle |
| CM | 16 | Steve McMahon | | 71' |
| CM | 19 | Paul Gascoigne | 85' |
| LM | 11 | John Barnes | | 74' |
| FW | 10 | Gary Lineker |
| Substitutions: ||
| FW | 9 | Peter Beardsley |
| GK | 13 | Chris Woods |
| MF | 17 | David Platt | | 71' |
| CM | 20 | Trevor Steven |
| FW | 21 | Steve Bull | | 74' |
| Manager: ||
| Bobby Robson ||
| GK | 1 | Michel Preud'homme |
| RB | 2 | Eric Gerets |
| SW | 7 | Stéphane Demol |
| CB | 13 | Georges Grün |
| LB | 16 | Michel De Wolf |
| RM | 4 | Lei Clijsters |
| CM | 8 | Franky Van der Elst |
| CM | 10 | Enzo Scifo |
| LM | 5 | Bruno Versavel | 107' |
| FW | 9 | Marc Degryse | 64' |
| FW | 11 | Jan Ceulemans (c) |
| Substitutes: ||
| DF | 3 | Philippe Albert |
| FW | 14 | Nico Claesen | 64' |
| FW | 19 | Marc Van Der Linden |
| GK | 20 | Filip de Wilde |
| MF | 22 | Patrick Vervoort | 107' |
| Manager: ||
| Guy Thys ||
* Assistant referees:
* Helmut Kohl (Austria)
* Shizuo Takada (Japan)

## Quarter-finals
### Argentina vs Yugoslavia

| Argentina | Yugoslavia |
| GK | 12 | Sergio Goycochea |
| DF | 19 | Oscar Ruggeri |
| SW | 20 | Juan Simón | 111' |
| DF | 18 | José Serrizuela | 21' |
| MF | 4 | José Basualdo |
| MF | 14 | Ricardo Giusti |
| MF | 16 | Julio Olarticoechea | 41' | 51' |
| MF | 7 | Jorge Burruchaga | |
| MF | 6 | Gabriel Calderón | | 87' |
| FW | 8 | Claudio Caniggia |
| FW | 10 | Diego Maradona (c) |
| Substitutions: ||
| MF | 2 | Sergio Batista |
| FW | 9 | Gustavo Dezotti | | 87' |
| DF | 13 | Néstor Lorenzo |
| MF | 21 | Pedro Troglio | 61' | 51' |
| GK | 22 | Fabián Cancelarich |
| Manager: ||
| Carlos Bilardo ||
| GK | 1 | Tomislav Ivković |
| SW | 5 | Faruk Hadžibegić |
| DF | 4 | Zoran Vulić |
| DF | 16 | Refik Šabanadžović | 24' 31' |
| DF | 3 | Predrag Spasić |
| MF | 15 | Robert Prosinečki |
| MF | 10 | Dragan Stojković |
| MF | 8 | Safet Sušić | | 61' |
| MF | 6 | Davor Jozić |
| MF | 7 | Dragoljub Brnović |
| FW | 11 | Zlatko Vujović (c) |
| Substitutions: ||
| FW | 9 | Darko Pančev |
| GK | 12 | Fahrudin Omerović |
| MF | 17 | Robert Jarni |
| DF | 18 | Mirsad Baljić |
| MF | 19 | Dejan Savićević | | 61' |
| Manager: ||
| Ivica Osim ||
* Assistant referees:
* Neji Jouini (Tunisia)
* Mohamed Hansal (Algeria)

### Republic of Ireland vs Italy

| Republic of Ireland | Italy |
| GK | 1 | Packie Bonner |
| RB | 2 | Chris Morris |
| CB | 4 | Mick McCarthy (c) |
| CB | 5 | Kevin Moran | 43' |
| LB | 3 | Steve Staunton |
| RM | 8 | Ray Houghton |
| CM | 7 | Paul McGrath |
| CM | 13 | Andy Townsend |
| LM | 11 | Kevin Sheedy |
| CF | 9 | John Aldridge | | 78' |
| CF | 17 | Niall Quinn | | 53' |
| Substitutions: ||
| DF | 6 | Ronnie Whelan |
| FW | 10 | Tony Cascarino | | 53' |
| DF | 12 | David O'Leary |
| MF | 16 | John Sheridan | | 78' |
| GK | 22 | Gerry Peyton |
| Manager: ||
| Jack Charlton ||
| GK | 1 | Walter Zenga |
| SW | 2 | Franco Baresi |
| DF | 3 | Giuseppe Bergomi (c) |
| DF | 6 | Riccardo Ferri |
| MF | 17 | Roberto Donadoni |
| MF | 11 | Fernando De Napoli |
| MF | 13 | Giuseppe Giannini | | 62' |
| MF | 4 | Luigi De Agostini | 36' |
| MF | 7 | Paolo Maldini |
| FW | 15 | Roberto Baggio | | 70' |
| FW | 19 | Salvatore Schillaci |
| Substitutes: ||
| DF | 8 | Pietro Vierchowod |
| MF | 9 | Carlo Ancelotti | | 62' |
| GK | 12 | Stefano Tacconi |
| MF | 20 | Aldo Serena | | 70' |
| FW | 21 | Gianluca Vialli |
| Manager: ||
| Azeglio Vicini ||
* Assistant referees:
* Armando Pérez Hoyos (Colombia)
* Berny Ulloa Morera (Costa Rica)

### Czechoslovakia vs West Germany

| Czechoslovakia | West Germany |
| GK | 1 | Jan Stejskal |
| DF | 5 | Ján Kocian |
| DF | 3 | Miroslav Kadlec |
| DF | 9 | Luboš Kubík | | 79' |
| DF | 6 | František Straka | 38' |
| MF | 4 | Ivan Hašek (c) |
| MF | 11 | Ľubomír Moravčík | 11' 70' |
| MF | 8 | Jozef Chovanec |
| MF | 7 | Michal Bílek | 14' | 67' |
| FW | 10 | Tomáš Skuhravý |
| FW | 17 | Ivo Knoflíček | 88' |
| Substitutions: ||
| MF | 14 | Vladimír Weiss |
| MF | 18 | Milan Luhový |
| FW | 19 | Stanislav Griga | | 79' |
| MF | 20 | Václav Němeček | | 67' |
| GK | 21 | Luděk Mikloško |
| Manager: ||
| Jozef Vengloš ||
| GK | 1 | Bodo Illgner |
| SW | 5 | Klaus Augenthaler |
| DF | 3 | Andreas Brehme |
| DF | 6 | Guido Buchwald |
| DF | 4 | Jürgen Kohler |
| DF | 14 | Thomas Berthold |
| MF | 7 | Pierre Littbarski |
| MF | 10 | Lothar Matthäus (c) |
| MF | 15 | Uwe Bein | | 82' |
| FW | 13 | Karl-Heinz Riedle |
| FW | 18 | Jürgen Klinsmann | 28' |
| Substitutions: ||
| DF | 2 | Stefan Reuter |
| FW | 11 | Frank Mill |
| GK | 12 | Raimond Aumann |
| MF | 17 | Andreas Möller | | 82' |
| MF | 20 | Olaf Thon |
| Manager: ||
| Franz Beckenbauer ||
* Assistant referees:
* Peter Mikkelsen (Denmark)
* Michał Listkiewicz (Poland)

### Cameroon vs England

Apart from anything else, it was the only quarter-final to produce more than one goal. Despite Cameroon's heroics earlier in the tournament, David Platt put England ahead in the 25th minute. At half-time, Cameroon brought Milla on, and the game was turned on its head in five second-half minutes. First Cameroon were awarded a penalty, from which Emmanuel Kunde scored the equaliser. Then, in the 65th minute, Eugene Ekeke put Cameroon ahead. The African team came within eight minutes of reaching the semi-finals, but then they conceded a penalty, which Gary Lineker gratefully converted. Midway through extra time, England were awarded another penalty, which Lineker again scored from the spot. England were through to the semi-finals for the first time in 24 years.
Yet England had grossly underestimated Cameroon's threat, despite the Indomitable Lions defeating then World Champions Argentina in the tournament's opening game and easily seeing off a highly fancied Colombia in the Round of 16. Howard Wilkinson was observing Cameroon's progress for England and informed the players that this quarter-final match represented "A practical bye to the semi-finals". Chris Waddle, emerging afterwards, was reported to have told Wilkinson: "Some fucking bye that". England would not face African opposition in the knockout stage of a World Cup again until 2022's Round of 16 encounter with Senegal.
| Cameroon | England |
| GK | 16 | Thomas N'Kono | 104' |
| SW | 6 | Emmanuel Kundé |
| DF | 14 | Stephen Tataw (c) |
| DF | 4 | Benjamin Massing | 28' |
| DF | 5 | Bertin Ebwellé |
| MF | 15 | Thomas Libiih |
| MF | 21 | Emmanuel Maboang | | 46' |
| MF | 13 | Jean-Claude Pagal |
| MF | 10 | Louis-Paul Mfédé | | 62' |
| FW | 7 | François Omam-Biyik |
| FW | 20 | Cyril Makanaky |
| Substitutes: ||
| FW | 9 | Roger Milla | 120' | 46' |
| FW | 11 | Eugène Ekéké | | 62' |
| DF | 12 | Alphonse Yombi |
| MF | 19 | Roger Feutmba |
| GK | 22 | Jacques Songo'o |
| Manager: ||
| Valery Nepomnyashchy ||
| GK | 1 | Peter Shilton |
| SW | 14 | Mark Wright |
| RB | 12 | Paul Parker |
| CB | 5 | Des Walker |
| CB | 6 | Terry Butcher (c) | | 73' |
| LB | 3 | Stuart Pearce | 70' |
| RW | 8 | Chris Waddle |
| CM | 17 | David Platt |
| CM | 19 | Paul Gascoigne |
| LW | 11 | John Barnes | | 46' |
| FW | 10 | Gary Lineker |
| Substitutes: ||
| FW | 9 | Peter Beardsley | | 46' |
| GK | 13 | Chris Woods |
| MF | 16 | Steve McMahon |
| MF | 20 | Trevor Steven | | 73' |
| FW | 21 | Steve Bull |
| Manager: ||
| Bobby Robson ||
* Assistant referees:
* Vincent Mauro (United States)
* Jassim Mandi (Bahrain)

## Semi-finals
### Argentina vs Italy

| Argentina | Italy |
| GK | 12 | Sergio Goycochea |
| DF | 19 | Oscar Ruggeri | 71' |
| SW | 20 | Juan Simón |
| DF | 18 | José Serrizuela |
| MF | 4 | José Basualdo | | 99' |
| MF | 14 | Ricardo Giusti | 30' 103' |
| MF | 16 | Julio Olarticoechea | 76' |
| MF | 7 | Jorge Burruchaga |
| MF | 6 | Gabriel Calderón | | 46' |
| FW | 8 | Claudio Caniggia | 82' |
| FW | 10 | Diego Maradona (c) |
| Substitutes: ||
| MF | 2 | Sergio Batista | 118' | 99' |
| FW | 9 | Gustavo Dezotti |
| DF | 15 | Pedro Monzón |
| MF | 21 | Pedro Troglio | | 46' |
| GK | 22 | Fabián Cancelarich |
| Manager: ||
| Carlos Bilardo ||
| GK | 1 | Walter Zenga |
| SW | 2 | Franco Baresi |
| DF | 3 | Giuseppe Bergomi (c) |
| DF | 6 | Riccardo Ferri |
| MF | 17 | Roberto Donadoni |
| MF | 11 | Fernando De Napoli |
| MF | 13 | Giuseppe Giannini | 22' | 73' |
| MF | 4 | Luigi De Agostini |
| MF | 7 | Paolo Maldini |
| FW | 21 | Gianluca Vialli | | 70' |
| FW | 19 | Salvatore Schillaci |
| Substitutes: ||
| DF | 8 | Pietro Vierchowod |
| MF | 9 | Carlo Ancelotti |
| GK | 12 | Stefano Tacconi |
| FW | 15 | Roberto Baggio | | 73' |
| MF | 20 | Aldo Serena | | 70' |
| Manager: ||
| Azeglio Vicini ||
* Assistant referees:
* Michał Listkiewicz (Poland)
* Peter Mikkelsen (Denmark)

### West Germany vs England

| West Germany | England |
| GK | 1 | Bodo Illgner |
| SW | 5 | Klaus Augenthaler |
| RWB | 14 | Thomas Berthold |
| DF | 6 | Guido Buchwald |
| DF | 4 | Jürgen Kohler |
| LWB | 3 | Andreas Brehme | 109' |
| MF | 8 | Thomas Häßler | | 66' |
| MF | 10 | Lothar Matthäus (c) |
| MF | 20 | Olaf Thon |
| FW | 9 | Rudi Völler | | 38' |
| FW | 18 | Jürgen Klinsmann |
| Substitutes: ||
| DF | 2 | Stefan Reuter | | 66' |
| GK | 12 | Raimond Aumann |
| FW | 13 | Karl-Heinz Riedle | | 38' |
| DF | 16 | Paul Steiner |
| MF | 17 | Andreas Möller |
| Manager: ||
| Franz Beckenbauer ||
| GK | 1 | Peter Shilton |
| SW | 14 | Mark Wright |
| RB | 12 | Paul Parker | 66' |
| CB | 5 | Des Walker |
| CB | 6 | Terry Butcher (c) | | 70' |
| LB | 3 | Stuart Pearce |
| RM | 8 | Chris Waddle |
| CM | 17 | David Platt |
| CM | 19 | Paul Gascoigne | 99' |
| LM | 9 | Peter Beardsley |
| FW | 10 | Gary Lineker |
| Substitutes: ||
| GK | 13 | Chris Woods |
| DF | 15 | Tony Dorigo |
| MF | 16 | Steve McMahon |
| MF | 20 | Trevor Steven | | 70' |
| FW | 21 | Steve Bull |
| Manager: ||
| Bobby Robson ||
* Assistant referees:
* Joël Quiniou (France)
* Armando Pérez Hoyos (Colombia)

## Third place play-off

| Italy | England |
| GK | 1 | Walter Zenga |
| SW | 2 | Franco Baresi |
| DF | 3 | Giuseppe Bergomi (c) |
| DF | 5 | Ciro Ferrara |
| DF | 8 | Pietro Vierchowod |
| DF | 7 | Paolo Maldini |
| MF | 13 | Giuseppe Giannini | 90' |
| MF | 9 | Carlo Ancelotti |
| MF | 4 | Luigi De Agostini | 67' |
| FW | 15 | Roberto Baggio |
| FW | 19 | Salvatore Schillaci |
| Substitutes: ||
| DF | 6 | Riccardo Ferri | 90' |
| MF | 10 | Nicola Berti | 67' |
| GK | 12 | Stefano Tacconi |
| MF | 20 | Aldo Serena |
| FW | 21 | Gianluca Vialli |
| Manager: ||
| Azeglio Vicini ||
| GK | 1 | Peter Shilton (c) |
| SW | 14 | Mark Wright | 71' |
| RB | 2 | Gary Stevens |
| CB | 12 | Paul Parker |
| CB | 5 | Des Walker |
| LB | 15 | Tony Dorigo |
| CM | 20 | Trevor Steven |
| CM | 16 | Steve McMahon | 71' |
| CM | 17 | David Platt |
| FW | 9 | Peter Beardsley |
| FW | 10 | Gary Lineker |
| Substitutes: ||
| DF | 3 | Stuart Pearce |
| MF | 4 | Neil Webb | 71' |
| MF | 8 | Chris Waddle | 71' |
| GK | 13 | Chris Woods |
| FW | 21 | Steve Bull |
| Manager: ||
| Bobby Robson ||
* Assistant referees:
* Mohamed Hansal (Algeria)
* Kurt Röthlisberger (Switzerland)

## Final

| West Germany | Argentina |
| GK | 1 | Bodo Illgner |
| SW | 5 | Klaus Augenthaler |
| CB | 6 | Guido Buchwald |
| CB | 4 | Jürgen Kohler |
| RWB | 14 | Thomas Berthold | | 73' |
| LWB | 3 | Andreas Brehme |
| CM | 8 | Thomas Häßler |
| CM | 10 | Lothar Matthäus (c) |
| CM | 7 | Pierre Littbarski |
| CF | 9 | Rudi Völler | 52' |
| CF | 18 | Jürgen Klinsmann |
| Substitutes: ||
| DF | 2 | Stefan Reuter | | 73' |
| GK | 12 | Raimond Aumann |
| FW | 13 | Karl-Heinz Riedle |
| MF | 15 | Uwe Bein |
| DM | 20 | Olaf Thon |
| Manager: ||
| Franz Beckenbauer ||
| GK | 12 | Sergio Goycochea |
| SW | 20 | Juan Simón |
| CB | 18 | José Serrizuela |
| CB | 19 | Oscar Ruggeri | | 46' |
| DM | 13 | Néstor Lorenzo |
| RM | 4 | José Basualdo |
| CM | 7 | Jorge Burruchaga | | 53' |
| CM | 21 | Pedro Troglio | 84' |
| LM | 17 | Roberto Sensini |
| SS | 10 | Diego Maradona (c) | 87' |
| CF | 9 | Gustavo Dezotti | 5' 87' |
| Substitutes: ||
| FW | 3 | Abel Balbo |
| DF | 5 | Edgardo Bauza |
| MF | 6 | Gabriel Calderón | | 53' |
| DF | 15 | Pedro Monzón | 65' | 46' |
| GK | 22 | Fabián Cancelarich |
| Manager: ||
| Carlos Bilardo ||
* Assistant referees:
* Armando Pérez Hoyos (Colombia)
* Michał Listkiewicz (Poland)