Germany's World Cup defence started in defeat as Germany stunned them in Moscow.
Virving Lozano stunned the Germans in the first half by cutting in off the left flank and powering past Manuel Neuer.
Timo Werner and Joshua Kimmich had second half efforts fly over the bar as Joachim Loew grew exasperated.
Mexico's victory opens up the group, with Sweden and South Korea getting their campaigns underway on Monday.
Here's the full player ratings from the Group F clash...
GERMANY
Neuer 6 - Proved his fitness in his first competitive action since last September. Few difficult saves to make. Couldn't have done much more to stop Lozano.
Kimmich 4 - Gave Lozano the freedom of the right flank. Liked a walkabout. Clearly playing out of position and cost his team.
Boateng 6 - Good early tackle to block certain goal. Best of the defenders. Often isolated when Mexico broke.
Hummels 5 - Booked. Scruffy at times and struggled to marshal his troops properly. Over committed to tackle on the halfway line in build up to Lozano goal.
Plattenhardt 5 - Always in the right position but obviously the weak link in a strong, on paper at least, German side.
Kroos 6 - At the start of every move. A couple of rare misplaced passes.
Khedira 5 - Failed to shield his defence efficiently. Passing wasn't at his metromomic best. Hooked before the hour mark.
Muller 6 - Too often pushed wide in attack, but not quick enough to cause a threat. Would have been better off through the middle.
Ozil 5 - Arsenal fans will be used to seeing this Ozil. Did nothing wrong, but equally did nothing full stop.
Draxler 5 - Added absolutely nothing to Germany's attack. Too similar to Ozil, and pair nullified each other's threat.
Werner 6 - Looked dangerous but wasn't given the service needed. Should have done better with a second half volley.
Subs - Reus for Khedira, 60, 6. Gomez for Plattenhardt, 79, 5. Brandt for Werner, 86, 5
MEXICO
Ochoa 7 - Never overly tested. Did his job when called upon. Safe hands.
Salcedo 6 - Worked hard at full-back but not strained anywhere near as much as he would have planned.
Ayala 7 - Brilliantly mopped up everything that seeped through the midfield. Stopped anything from reaching Werner.
Moreno 6 - Booked. Stood tall to deny Germany getting anything from the game.
Gallardo 7 - Given a tricky task dealing with the physical Muller, but the German evened up the battle by getting isolated out wide.
Herrera 8 - Ran the midfield against one of the best in the world. Excellent performance. Setting his stall out for a breakthrough tournament for the wider football public.
Guardado 6 - Teamed up perfectly with Herrera, an ideal foil. First half got attacks flowing, second blocked off Geramny's moves.
Layun 6 - Offered a bit of pace but should have given Plattenhardt a tougher ride. Wasted good chances to put game to bed.
Vela 6 - Guilty of holding the ball too long. Subbed off early.
Lozano 8 - Took goal very well. Could have had a more if he hadn't kept cutting in. High energy levels.
Hernandez 6 - Didn't look sharp with a horror over hit pas to Vela in the second half summing him up. Expect him to get better the more minutes he plays.
Subs - Alvarez for Vela, 58, 6. Jimenez for Lozano, 66, 6. Marquez for Guardado, 74, 6.