Two late goals saw runaway Campeonato Brasileiro leaders Cruzeiro suffer just their fourth reverse of the season as Sao Paulo claimed a surprise 2-0 win.
Douglas broke the deadlock in the 77th minute and Reinaldo made the game safe three minutes later.
The defeat did not affect their 11-point lead at the top of the table though as second-placed Gremio also suffered a home defeat, 2-1 against Criciuma.
Wellington Paulista put the visitors in the 36th minute and, after Maximiliano Rodriguez equalisd in the 57th minute, Serginho snatched the points a minute from the end.
Clarence Seedorf was on target as Botafogo came from behind to win 3-1 at Nautico Recife.
Seedorf put the visitors ahead five minutes before the break after Rafael Marques (26) had cancelled out Maikon Leite's ninth-minute opener. Geovani added a third late on.
Atletico Paranaense were held to a goalless draw at Corinthians. Second-bottom Ponte Preta took advantage of nine-man Atletico Mineiro's ill discipline to claim a 2-0 win.
Atletico had Jemerson (33) and Rosinei (80) sent off, with William (36) from the spot and Ribeiro Elias netting for the hosts.
There were also wins for Vasco da Gama, Coritiba and Bahia.