El arranque del encuentro fue bien típico de una final que enfrenta a dos equipos muy parejos. En los primeros diez minutos de juego, se estudiaron. Flamengo parecía apenas mejor que River, plantado más adelante pero sin profundidad. Pero el Millonario empezó a entender el partido y a los 13 llegó a apertura del marcador.
Enzo Pérez habilitó por derecha a Nacho Fernández, quien tuvo que exigirse yendo al piso para mandar el centro atrás y evitar que la pelota se fuera. El envío de zurdo no parecía llevar demasiado peligro, pero entre Gerson y William Arao se molestaron y ninguno despejó la pelota, tampoco Everton Ribeiro y Borré no la desaprovechó: retrocedió unos pasos y de mediavuelta la puso cerca del palo a ras del suelo para el 1-0.
Después del gol se mostró mucho mejor el equipo de Marcelo Gallardo, que presionó bien en la mitad de la cancha para impedir avances de los brasileños, y con un poco más de precisión podría haber encontrado espacios para ampliar la ventaja. Al Flamengo le costó horrores llegar al arco de Armani, y ni siquiera pudo aprovechar las pelotas detenidas que tuvo.
A los 36, después de una salida rapidísima de Montiel por la derecha, Borré pivoteó para la llegada de Exequiel Palacios, que sacó un derechazo cruzado que se fue muy cerca del palo derecho del arquero Diego Alves. En los últimos minutos de la etapa inicial, los cariocas volvieron a tener la pelota pero sin posibilidad de lastimar en ningún momento, y el encuentro se fue 1-0 al descanso.
En el arranque de la segunda mitad, Flamengo tuvo en los primeros instantes una posibilidad que prácticamente no había tenido hasta ese momento: probar a Armani con un remate desde afuera, pero el tiro de Gabigol fue de fácil control para el 1 de River. Los de Núñez probaron también con remates de afuera: Suárez y Palacios no tuvieron éxito.
Y a los 13 llegó la gran polémica de la tarde: primero, Flamengo sacó una contra cuando los jugadores de River pedían que tiraran afuera la pelota porque Montiel estaba tirado. Bruno Henrique llegó al fondo y tiró el centro atrás, De Arrascaeta se pasó de largo, Gabigol sacó un zurdazo que rebotó en De La Cruz y en el rebote, Everton Ribeiro parecía tener el gol pero se topó con una tremenda atajada de Armani. En la repetición se vio que el tiro de Gabigol había pegado en el codo de De La Cruz, pero Tobar no fue ni a verla al VAR: confió en lo que le dijeron desde la cabina de video y el partido siguió adelante.
Pasando los 20 minutos de juego, el Fla comenzó a adelantarse en el campo de juego y le comenzó a dejar espacios a River. Suárez no estuvo preciso en un centro atrás al llegar al fondo y Nacho Fernández casi sorprende con una volea después de pararla de pecho y darle de zurda para que le pelota saliera cerca del palo. En menos de diez minutos, el Muñeco metió los tres cambios: primero fue el ingreso del juvenil Julián Álvarez por Nacho Fernández, minutos más tarde saltó a la cancha Pratto por Borré y por último, Paulo Díaz por Casco, que desde el primer tiempo estaba amonestado.
El último tramo del encuentro fue de dominio de Flamengo, que se plantó en campo contrario en busca del empate y merodeó el área de River por un rato largo pero no podía. Así y todo, una recuperación de Suárez en el área rival derivó en un pase atrás para la llegada de Palacios, que a los 35 casi liquida la historia.