Sao Paulo twice squandered the lead as they missed the chance to go second in the Campeonato following a 3-3 draw at Cruzeiro.
In an exciting match, Sao Paulo also finished with 10 men when Denilson was sent off in the final minute.
Carneiro Keirrison put the hosts ahead in the 11th minute, a lead which lasted until the 59th minute when Santos Cicero levelled.
Pelentier Dagoberto then put Adilson Batista's side ahead five minutes later but Charles drew the hosts level in the 71st minute, heralding a spell of three goals in eight minutes.
Sao Paulo again pulled ahead in the 77th minute thanks to Junior Juan but their lead lasted just two minutes as Ramon Anselmo equalised. The final minute then saw Denilson given his marching orders.
Sao Paulo stay in third, a point behind Corinthians and three adrift of leaders Vasco da Gama.
A ninth-minute goal by Brandao was enough to secure a 1-0 win for Gremio over Santos.