Andrea Pirlo scored a stunning free-kick on his 100th cap for Italy, but it was Mario Balotelli who sunk Mexico in a 2-1 win in their Confederations Cup duel at the Maracana in Rio de Janeiro.
The Juventus midfielder lifted a free-kick over the wall and high into the Mexico goal with keeper Jose de Jesus Corona left with no chance on 27 minutes.
Manchester United striker Javier Hernandez sent Gianluigi Buffon the wrong way from the penalty spot on 34 minutes for the equaliser after Andrea Barzagli had clumsily bundled Giovani Dos Santos to the ground.
Barzagli was fortunate to avoid a straight red with replays showing there were no defenders between him and Buffon when he bundled Dos Santos to the ground.
Balotelli won it for the former World Cup holders with 12 minutes remaining of normal time when he outmuscled Francisco Rodríguez before sending the ball beyond Corona in the Mexico goal from deep inside the area.
Balotelli was booked for whipping off his shirt, but did not seem to care much with Italy getting their tournament off to a perfect start.
Cesare Prandelli's side face Japan in their next Group A match with Mexico meeting host nation Brazil on Wednesday.
Brazil began their campaign with a 3-0 win over Japan on Saturday evening.
Manchester United striker Javier Hernandez, the only player to score in a competitive game for Mexico in 2013, started up front for El Tricolor while Mallorca attacking midfielder Dos Santos was also recalled after starting the game against Costa Rica on the bench.
Italy deployed a new 4-3-2-1 system with Juventus duo Emanuele Giaccherini – who scored Italy’s fastest ever goal after 19 seconds against Haiti this week – and Claudio Marchisio.
Andrea Pirlo won his 100th cap and was majestic, but Mexico contributed to a lively contest that sped from end to end with some regularity.
Italy carved out the first chance of the night when Riccardo Montolivo picked out Balotelli, but his shot was halted by Jose de Jesus Corona.
Dos Santos picked out Guardado in space on 12 yards, but his shot came back off the bar from 12 yards with Buffon beaten.
Another Pirlo free-kick broke to Montolivo early in the second half, but his shot was held by Corona.
Balotelli should have been awarded a penalty around the hour-mark when he was clearly felled by Hector Moreno, but the referee was not interested his appeals.
Andrés Guardado threw a fine free-kick into the heart of the Italy box, but Gerarrdo Flores nodded wide of goal when it looked easier to find the target.