Fase de grupos | |||
| Grupo A | |||
| Bulgaria | 1 | 1 | Italia |
| 31 de Mayo / Estadio Azteca / Árbitro: Erik Fredriksson | |||
| Argentina | 3 | 1 | Corea del Sur |
| 02 de Junio / Estadio Olimpico Universitario / Árbitro: Victoriano Sanchez Arminio | |||
| Italia | 1 | 1 | Argentina |
| 05 de Junio / Estadio Cuauhtemoc / Árbitro: Jan Keizer | |||
| Corea del Sur | 1 | 1 | Bulgaria |
| 05 de Junio / Estadio Olimpico Universitario / Árbitro: Fallaj Al Shanar | |||
| Corea del Sur | 2 | 3 | Italia |
| 10 de Junio / Estadio Cuauhtemoc / Árbitro: David Socha | |||
| Argentina | 2 | 0 | Bulgaria |
| 10 de Junio / Estadio Olimpico Universitario / Árbitro: Berny Ulloa Morera | |||
| Grupo B | |||
| Bélgica | 1 | 2 | México |
| 03 de Junio / Estadio Azteca / Árbitro: Carlos Esposito | |||
| Paraguay | 1 | 0 | Iraq |
| 04 de Junio / Estadio Nemesio Diez / Árbitro: Edwin Picon-Ackong | |||
| México | 1 | 1 | Paraguay |
| 07 de Junio / Estadio Azteca / Árbitro: George Courtney | |||
| Iraq | 1 | 2 | Bélgica |
| 08 de Junio / Estadio Nemesio Diez / Árbitro: Jesus Diaz | |||
| Paraguay | 2 | 2 | Bélgica |
| 11 de Junio / Estadio Nemesio Diez / Árbitro: Bogdan Dotchev | |||
| Iraq | 0 | 1 | México |
| 11 de Junio / Estadio Azteca / Árbitro: Zoran Petrovic | |||
| Grupo C | |||
| Canadá | 0 | 1 | Francia |
| 01 de Junio / Estadio Nou Camp Leon / Árbitro: Hernan Silva | |||
| Unión Soviética | 6 | 0 | Hungría |
| 02 de Junio / Estadio Sergio Leon Chavez / Árbitro: Luigi Agnolin | |||
| Francia | 1 | 1 | Unión Soviética |
| 05 de Junio / Estadio Nou Camp / Árbitro: Leon | |||
| Hungría | 2 | 0 | Canadá |
| 06 de Junio / Estadio Sergio Leon Chavez / Árbitro: Jamal Al Sharif | |||
| Hungría | 0 | 3 | Francia |
| 09 de Junio / Estadio Nou Camp Leon / Árbitro: Carlos Silva Valente | |||
| Unión Soviética | 2 | 0 | Canadá |
| 09 de Junio / Estadio Sergio Leon Chavez / Árbitro: Idriss Traore | |||
| Grupo D | |||
| España | 0 | 1 | Brasil |
| 01 de Junio / Estadio Jalisco / Árbitro: Chris Bambridge | |||
| Argelia | 1 | 1 | Irlanda del Norte |
| 03 de Junio / Estadio Tres de Marzo / Árbitro: Valeri Butenko | |||
| Brasil | 1 | 0 | Argelia |
| 06 de Junio / Estadio Jalisco / Árbitro: Romulo Mendez | |||
| Irlanda del Norte | 1 | 2 | España |
| 07 de Junio / Estadio Tres de Marzo / Árbitro: Horst Brummeier | |||
| Irlanda del Norte | 0 | 3 | Brasil |
| 12 de Junio / Estadio Jalisco / Árbitro: Siegfried Kirschen | |||
| Argelia | 0 | 3 | España |
| 12 de Junio / Estadio Tecnologico / Árbitro: Shizuo Takada | |||
| Grupo E | |||
| Uruguay | 1 | 1 | Alemania Occidental |
| 04 de Junio / Estadio La Corregidora / Árbitro: Vojtech Christov | |||
| Escocia | 0 | 1 | Dinamarca |
| 04 de Junio / Estadio Neza 86 / Árbitro: Lajos Nemeth | |||
| Alemania Occidental | 2 | 1 | Escocia |
| 08 de Junio / Estadio La Corregidora / Árbitro: Ioan Igna | |||
| Dinamarca | 6 | 1 | Uruguay |
| 08 de Junio / Estadio Neza 86 / Árbitro: Antonio Marquez Ramirez | |||
| Dinamarca | 2 | 0 | Alemania Occidental |
| 13 de Junio / Estadio La Corregidora / Árbitro: Alexis Ponnet | |||
| Escocia | 0 | 0 | Uruguay |
| 13 de Junio / Estadio Neza 86 / Árbitro: Joel Quiniou | |||
| Grupo F | |||
| Marruecos | 0 | 0 | Polonia |
| 02 de Junio / Estadio Universitario Monterrey / Árbitro: Jose Luis Martinez Bazan | |||
| Portugal | 1 | 0 | Inglaterra |
| 03 de Junio / Estadio Tecnologico / Árbitro: Volker Roth | |||
| Inglaterra | 0 | 0 | Marruecos |
| 06 de Junio / Estadio Tecnologico / Árbitro: Gabriel Gonzalez | |||
| Polonia | 1 | 0 | Portugal |
| 07 de Junio / Estadio Universitario Monterrey / Árbitro: Ali Bin Nassar | |||
| Inglaterra | 3 | 0 | Polonia |
| 11 de Junio / Estadio Universitario Monterrey / Árbitro: Andre Daina | |||
| Portugal | 1 | 3 | Marruecos |
| 11 de Junio / Estadio Tres de Marzo / Árbitro: Alan Snoddy | |||
Octavos de final | |||
| México | 2 | 0 | Bulgaria |
| 15 de Junio / Estadio Azteca / Árbitro: Romualdo Arppi Filho | |||
| Unión Soviética | 3 | 4 | Bélgica |
|
Tiempo extra 15 de Junio / Estadio Nou Camp Leon / Árbitro: Erik Fredriksson |
|||
| Brasil | 4 | 0 | Polonia |
| 16 de Junio / Estadio Jalisco / Árbitro: Volker Roth | |||
| Argentina | 1 | 0 | Uruguay |
| 16 de Junio / Estadio Cuauhtemoc / Árbitro: Luigi Agnolin | |||
| Italia | 0 | 2 | Francia |
| 17 de Junio / Estadio Olimpico Universitario / Árbitro: | |||
| Marruecos | 0 | 1 | Alemania Occidental |
| 17 de Junio / Estadio Universitario Monterrey / Árbitro: | |||
| Inglaterra | 3 | 0 | Paraguay |
| 18 de Junio / Estadio Azteca / Árbitro: Jamal Al Sharif | |||
| Dinamarca | 1 | 5 | España |
| 18 de Junio / Estadio La Corregidora / Árbitro: Jan Keizer | |||
Cuartos de final | |||
| Brasil | 1 (3) | (4) 1 | Francia |
|
Tiempo extra + (penales) 21 de Junio / Estadio Jalisco / Árbitro: Ioan Igna |
|||
| Alemania Occidental | 0 (4) | (1) 0 | México |
|
Tiempo extra + (penales) 21 de Junio / Estadio Universitario Monterrey / Árbitro: Jesus Diaz |
|||
| Argentina | 2 | 1 | Inglaterra |
| 22 de Junio / Estadio Azteca / Árbitro: Ali Bin Nasser | |||
| España | 1 (4) | (5) 1 | Bélgica |
|
Tiempo extra + (penales) 22 de Junio / Estadio Cuauhtemoc / Árbitro: Siegfried Kirschen |
|||
Semifinal | |||
| Francia | 0 | 2 | Alemania Occidental |
| 25 de Junio / Estadio Jalisco / Árbitro: Luigi Agnolin | |||
| Argentina | 2 | 0 | Bélgica |
| 25 de Junio / Estadio Azteca / Árbitro: Antonio Marquez Ramirez | |||
Tercer puesto | |||
| Francia | 4 | 2 | Bélgica |
|
Tiempo extra 28 de Junio / Estadio Cuauhtemoc / Árbitro: George Courtney |
|||
Final | |||
| Argentina | 3 | 2 | Alemania Occidental |
| 29 de Junio / Estadio Azteca / Árbitro: Romualdo Arppi Filho | |||