Brazil had more of the ball in Sunday's international friendly but could not make it count and were caught out by two first-half goals from Mexico.

Mexico took the lead in the 22nd minute after Pablo Barrera's 40-yard pass switched the play to Dos Santos on the left of the box.

The Tottenham midfielder was stalled by Brazilian defender Danilo but found space to clip the ball in off the back post.

Mexico continued to threaten on the counterattack and earned a penalty 11 minutes later.

After a stray pass in Brazil's defensive penalty area, Juan was overzealous in his attempt to retrieve the ball and brought down Dos Santos.

Hernandez stepped up and converted from the spot to double his side's lead.

Down 2-0 at half-time, Brazil continued to threaten throughout the second half but could not break down Mexico's resolute defence, suffering their first friendly defeat since June 2011 when they lost 3-2 to Germany.

In Toronto, Canada secured a 0-0 draw against the United States in their only warm-up game before they begin the third round of CONCACAF World Cup qualifying on Friday.

In their third game in eight days, the US looked tired and lacked sharpness in the final third.

Canada had arguably the best chances to score in the match and even looked to have taken the lead in the 34th minute when Nik Ledgerwood hit the back of the net, only for the goal to be denied for a foul by Dwayne De Rosario.

While they failed to score, Canada will take plenty of confidence into their World Cup qualifier in Cuba on Friday.

The US host Antigua and Barbuda on the same day.