El primer tiempo fue controlado completamente por los dueños de casa, que a los dos minutos avisó con un remate de Roberto Firmino, aunque luego todo fue anulado por posición de adelanto del atacante de Liverpool.
A los 18' Gabriel Jesús abrió la cuenta para el "Scratch", tras conectar un centro de Firmino en una jugada que partió en los pies de Dani Alves.
En el complemento, los dirigidos por Lionel Scaloni salieron con todo en busca del empate. Lautaro Martínez probó con un disparo tras darse media vuelta en la entrada del área en los 49', pero el remate le salió mordido.
Luego, en los 51' Rodrigo de Paul fusiló tras recibir un pase de Messi y su remate se fue sobre el arco, logrando inquietar al meta Alisson Becker.
Messi tuvo en sus pies el empate primero en los 57' con un disparo que rebotó en el vertical y después mediante tiro libre a los 65', con una precisa ejecución al ángulo que el portero brasileño contuvo de gran manera.
Firmino sentenció el resultado cuando corría el minuto 71, tras pegarle con libertad a dos metros del arco, luego de una gran jugada por izquierda de Gabriel Jesús que terminó en centro para el goleador de los "Reds".
La polémica del encuentro se dio a los 84', luego de que Arthur derribara a Nicolás Otamendi en el área durante un tiro de esquina. Pese a los reclamos y a la claridad de la falta en las repeticiones televisivas, el juez Roddy Zambrano no revisó la falta ni fue avisado por el VAR, desatando la molestia de los trasandinos.
Finalmente el triunfo fue para Brasil que este domingo en el Estadio Maracaná de Río de Janeiro se medirá por el título ante la Roja o la selección peruana, que el miércoles definen al segundo finalista.
Argentina, en tanto, deberá conformarse con el duelo por el tercer lugar que se jugará el sábado en el Arena Corinthians de Sao Paulo.