Brazil had not lost a game since Belgium knocked them out of the 2018 World Cup in Russia
Luis Abram scored the only goal in the 84th minute, inflicting the first defeat in over a year on the five-time world champions.
The introduction of forwards Neymar, Vinicius Junior, Lucas Paqueta and Bruno Henrique at half-time made little difference to an off-colour Brazil.
Brazil had beaten Peru 3-1 in the Copa America final in July.
Meanwhile, Inter Milan striker Lautaro Martinez scored a 22-minute hat-trick as Argentina beat Mexico 4-0 in a friendly in San Antonio.
Paris St-Germain midfielder Leandro Paredes scored the other goal from the penalty spot as Argentina, who were without Lionel Messi, Sergio Aguero and Angel di Maria, completed the scoring in the first half.