L'équipe de Hongrie, dite l'onze d'or, était considérée comme la grande favorite du tournoi. Effectivement, la formation composée de stars telles Ferenc Puskas, Nándor Hidegkuti, Sándor Kocsis et autres Gyula Grosics était invaincue depuis quatre ans, était championne olympique et venait de battre par deux fois l'équipe anglaise, dont le fameux 6-3 à Wembley.
Les Magyars passèrent le premier tour sans problème majeur, infligeant même un sévère 8-3 à l'équipe allemande. Mais l'entraîneur allemand, Sepp Herberger, considérant le match comme perdu d'avance, avait aligné une équipe composée surtout de réservistes. Sous la vigueur des tacles allemands, la vedette Puskás sortit blessée de cette rencontre et manqua les parties suivantes.
Le quart de finale face au Brésil fut bien plus dur pour les hommes de Gusztáv Sebes. Dominés au niveau du jeu, les Brésiliens produisirent un jeu de plus en plus agressif, souvent à la limite de la régularité. Mais ils ne purent empêcher la victoire hongroise. La demi-finale face à l'Uruguay, si elle fut bien plus régulière au niveau du jeu, fut toute aussi éprouvante. Sous l'impulsion de l'entraîneur Sebes, qui exigeait le maximum à chaque match, les joueurs commencèrent à fatiguer. Ils s'imposèrent tout de même, mais dans les prolongations d'un match exigeant.
De l'autre côté, l'Allemagne, s'étant qualifiée dans le match de barrage face à la Turquie, avait connu un parcours bien plus facile en quarts et en demi, éliminant respectivement une équipe de Yougoslavie décevante (2-0) et une équipe d'Autriche d'un niveau assez moyen (6-1). Les Allemands se présentaient donc en meilleure condition physique et mieux préparés aux conditions météo.
Effectivement, la pluie qui tombait sur le stade du Wankdorf de Berne le jour de la finale n'avantageait pas le jeu hongrois. Mais ces derniers, comptant à nouveau Puskás dans leurs rangs, prirent rapidement l'avantage et menèrent 2-0 après huit minutes. Mais le onze allemand revint au score dans les minutes qui suivirent, et Helmut Rahn, l'un des deux héros allemands de la finale avec le gardien Anton Turek, égalisa encore après 18 minutes. Au retour des vestiaires, les joueurs hongrois dominèrent toujours leurs adversaires, mais n'arrivèrent pas à marquer, touchant le cadre à plusieurs reprises. Au contraire, ce fut à nouveau Rahn qui marqua le 3-2 à cinq minutes de la fin. Un dernier but de Puskás, dans les ultimes minutes, fut annulé pour hors-jeu.
D'un côté, les joueurs hongrois furent ramenés en discrétion, afin de leur éviter la confrontation avec les supporters déçus. En quelques années, l'équipe était décimée. Désigné comme bouc émissaire par les officiels, le gardien Grosics fut écarté de la sélection nationale pour deux ans. Les stars, très cotées à l'étranger, commencèrent à s'exiler, tels Puskás au Real Madrid ou Kocsis au Barça. En face, les joueurs allemands étaient célébrés à leur retour, dès le passage de la frontière. Mais tous, à l'exception de Fritz Walter et de Rahn, retombèrent dans un certain anonymat dans les années qui suivirent, ayant pris leur retraite du monde sportif. L'équipe allemande ne joua plus qu'un seul match dans la composition victorieuse à Berne: un match de gala en 1967.
Le parcours victorieux de l'équipe d'Allemagne a inspiré le film Le Miracle de Berne (2003) de Sönke Wortmann.
Premier tour :
Groupe A :
16 juin 1954 Yougoslavie France 1 - 0 Milutinović 14'
16 juin 1954 Brésil Mexique 5 - 0 Baltazar 24', Didi 29', Pinga 34' et 42', Julinho 90'
19 juin 1954 Yougoslavie Brésil 1 - 1 * Zebec 49' ; Didi 69'
19 juin 1954 France Mexique 3 - 2
Vincent 19', Cárdenas 46' (csc), Kopa 88' (pen) ; Lamadrid 54', Balcázar 85'
* après prolongation
Classement
1er Brésil 3 2 1 1 0 6 1 +5
2e Yougoslavie 3 2 1 1 0 2 1 +1
3e France 2 2 1 0 1 3 3 0
4e Mexique 0 2 0 0 2 2 8 -6
Groupe B
17 juin 1954 Hongrie Corée du Sud 9 - 0
Puskás 11' et 89', Lantos 16', Kocsis 24', 31' et 49', Czibor 59', Palotás 76' et 83'
17 juin 1954 RFA Turquie 4 - 1
Schäfer 12', Klodt 51', O. Walter 80', Morlock 84' ; Suat 3'
20 juin 1954 Hongrie RFA 8 - 3
Kocsis 4', 21', 69' et 79', Puskás 17', Hidegkuti 52' et 56', J. Tóth 75' ; Pfaff 28', Rahn 76', Herrmann 84'
20 juin 1954 Turquie Corée du Sud 7 - 0
Suat 18' et 30', Lefter 18', Burhan 38', 64' et 70', Erol 76'
Classement
1er Hongrie 4 2 2 0 0 17 3 +14
2e Turquie 2 2 1 0 1 8 4 +4
3e RFA 2 2 1 0 1 7 9 -2
4e Corée du Sud 0 2 0 0 2 0 16 -16
Match d'appui :
23 juin 1954 RFA Turquie 7 - 2
O. Walter 7', Schäfer 11' et 79', Morlock 31', 62' et 71', F. Walter 63' ; Mustafa 22', Lefter 84'
Groupe C
16 juin 1954 Autriche Écosse 1 - 0
Probst 32'
16 juin 1954 Uruguay Tchécoslovaquie 2 - 0
Míguez 70', Schiaffino 84'
19 juin 1954 Autriche Tchécoslovaquie 5 - 0
Stojaspal 3' et 65', Probst 4', 21' et 24'
19 juin 1954 Uruguay Écosse 7 - 0
Borges 17', 48' et 58', Míguez 31' et 82', Abbadie 55' et 84'
Classement :.
1er Uruguay 4 2 2 0 0 9 0 +9
2e Autriche 4 2 2 0 0 6 0 +6
3e Tchécoslovaquie 0 2 0 0 2 0 7 -7
4e Écosse 0 2 0 0 2 0 8 -8
Groupe D
17 juin 1954 Belgique Angleterre 4 - 4
* Anoul 6' et 72', Coppens 76', Dickinson 93' (csc) ; Broadis 25' et 62', Lofthouse 37' et 92'
17 juin 1954 Suisse Italie 2 - 1 Ballaman 18', Hügi 79' ; Boniperti 44'
20 juin 1954 Angleterre Suisse 2 - 0 Mullen 43', Wilshaw 69'
20 juin 1954 Italie Belgique 4 - 1 Pandolfini 41' (pen), Galli 49', Frignani 58', Lorenzi 73' ; Anoul 81'
* après prolongation
Classement :
1er Angleterre 3 2 1 1 0 6 4 +2
2e Italie 2 2 1 0 1 5 3 +2
3e Suisse 2 2 1 0 1 2 3 -1
4e Belgique 1 2 0 1 1 5 8 -3
Match d'appui :
23 juin 1954 Suisse Italie
4 - 1 Hügi 12' et 85', Ballaman 48', Fatton 90' ; Nesti 67'
Quarts de finale
26 juin 1954 Autriche Suisse 7 - 5
Wagner 25', 28' et 52', A. Körner 26' et 34', Ocwirk 32', Probst 77' ; Ballaman 16' et 41', Hügi 17', 23' et 60'
26 juin 1954 Uruguay Angleterre
4 - 2 Borges 5', Varela 44', Schiaffino 47', Ambrois 78' ; Lofthouse 16', Finney 67'
27 juin 1954 Hongrie Brésil 4 - 2
Hidegkuti 4', Kocsis 7' et 88', Lantos 53' (pen) ; D. Santos 18' (pen), Julinho 65'
27 juin 1954 RFA Yougoslavie 2 - 0 Horvat 10' (csc), Rahn 86'
Demi-finales :
30 juin 1954 Hongrie Uruguay 4 - 2
* Czibor 12', Hidegkuti 47', Kocsis 109' et 117' ; Hohberg 76' et 87'
30 juin 1954 RFA Autriche 6 - 1
Schäfer 31', Morlock 47', F. Walter 56' (pen) et 65' (pen), O. Walter 61' et 89' ; Probst 52'
* après prolongation
Match pour la troisième place :
3 juillet 1954 : Autriche Uruguay 3 - 1
Stojaspal 16' (pen), Cruz 59' (csc), Ocwirk 79' ; Hohberg 21'
Finale :
Équipes : RFA - Hongrie
Score 3 - 2 ( 2 - 2 )
Date: 4 juillet 1954
Stade: Wankdorf, Berne
65 000 spectateurs
Arbitre: M. Ling (Angleterre)
Buts Puskás 6', Czibor 8', Morlock 10', Rahn 18', Rahn 84'
RFA : Anton Turek - Josef Posipal, Werner Kohlmeyer, Horst Eckel - Werner Liebrich, Karl Mai - Helmut Rahn, Maximilian Morlock, Ottmar Walter, Fritz Walter, Hans Schäfer
Entraîneur : Sepp Herberger
Hongrie :Gyula Grosics - Jenő Buzánszky, Mihály Lantos, József Bozsik - Gyula Lóránt, József Zakariás - Zoltán Czibor, Sándor Kocsis, Nándor Hidegkuti, Ferenc Puskás, Mihaly Tóth
Entraîneur : Gusztáv Sebes
Meilleurs buteurs
11 buts
Sándor Kocsis (Hongrie)
6 buts
Erich Probst (Autriche)
Maximilian Morlock (RFA)
Josef Hügi (Suisse)