O jogo da semifinal dos Jogos Olímpicos, não foi um dos melhores, no tempo regulamentar e na prorrogação, empate por 0 a 0 de raras emoções, poucas chances de gol, muitas faltas e 10 cartões amarelos. Nas penalidades máximas, converteram Daniel Alves, Martinelli, Bruno Guimarães e Reinier. Os mexicanos Eduardo Aguirre – em defesa de Santos – e Vazquez – trave – desperdiçaram. Rodriguez marcou.
Com Paulinho na vaga de Matheus Cunha, que não se recuperou para a partida, a seleção brasileira modificou um pouco o estilo de jogo. Manteve a pressão no campo de defesa do México e conseguiu boas oportunidades até metade da primeira etapa.
A melhor delas em ótima jogada criada de uma ponta à outra até o corta-luz de Claudinho para Guilherme Arana dominar e chutar para defesa de Ochoa. O goleiro mexicano ainda defenderia cobrança de falta de Daniel Alves e chute de Antony.
Sem muita saída, o México encontrou espaços nos erros do Brasil nos minutos finais e por pouco não abriu o placar. Num lance com Romo e outro, dentro da área, de Antuna, em rápido contra-ataque – após erro de Claudinho no meio
A cabeçada de Richarlison na trave aos 36 minutos do segundo tempo salvou uma segunda etapa de pouca criação e muita confusão. Foram cinco cartões amarelos e quase nada de finalizações. Cesar Montes também ameaçou em tentativa de cabeça perto do fim da partida.
Jardine tentou mexer na equipe, com Martinelli (saiu Paulinho) e Reinier (saiu Claudinho), mas os mexicanos se defendiam bem e o nervosismo dos brasileiros já era latente com o empate sem gols.
Malcom substituiu Antony no início da prorrogação, depois Matheus Henrique entrou no lugar de Douglas Luiz. Mas o Brasil só ameaçou em chute de fora da área de Arana. A partida se arrastou no tempo extra, sem oportunidades das duas equipes, embora fosse a seleção brasileira quem tomava a iniciativa do jogo.
O goleiro do Athletico-PR defendeu a primeira cobrança na disputa de pênaltis e ajudou o Brasil a passar pelo México nas penalidades por 4 a 1.