Mexico had several chances in the early going, but it was the hosts who took the lead. In the 17th minute, Memo Ochoa parried a low shot from Romelu Lukaku, but the rebound fell into the path of Eden Hazard, who made it 1-0.
El Tri found the equalizer from the penalty spot in the 38th minute. Laurent Ciman was called four a foul on Javier Hernández and Andrés Guardado put away the penalty to send the game to halftime tied at 1-1.
In the 55th minute, Lukaku put Belgium back in front when he knocked home a cross from Dries Mertens, but the lead lasted just moments before Hirving Lozano beat Thibaut Courtois to tie up once more.
Then El Tri went ahead in the 60th minute with another goal from “Chucky”, whose initial saved shot rebounded back to him to be finished on the volley, giving Mexico the 2-3 lead.
However, Belgium responded with a second goal from Lukaku, who finished off a cross from Mertens in the 70th minute to make it 3-3.
Lozano came close to putting Mexico back in front in the 83rd minute, but his shot was off-target and the game remained deadlocked.
Belgium: Thibaut Courtous, Laurent Ciman, Thomas Vermaelen, Dedryck Boyata, Nacer Chadli, Thomas Meunier, Axel Witsel, Youri Tielemans (Dries Mertens 45′), Kevin de Bruyne (Mousa Dembele 45′), Romelu Lukaku, Eden Hazard (Thorgan Hazard 85′).
Mexico: Guillermo Ochoa, Héctor Moreno, Néstor Araujo, Miguel Layún, Carlos Salcedo, Diego Reyes (Edson Álvarez 59′), Héctor Herrera, Andrés Guardado (Jürgen Damm 70′), Javier Hernández (Raúl Jiménez 51′), Carlos Vela (Giovani dos Santos 59′), Hirving Lozano (Javier Aquino 91′).