Vasco da Gama lifted themselves into second place in the Campeonato Brasileiro with a 1-0 win over rock-bottom Atletico Goianiense.
Alecsandro scored the only goal after 14 minutes against their winless opponents, putting Vasco within two points of leaders Atletico Mineiro.
It also lifted them above Fluminense, who could only draw 1-1 at fourth-placed Botafogo. Flu led after 53 minutes through Fred, but Andrezinho levelled 15 minutes later.
Sao Paulo were left to rue a missed opportunity as they let a 1-0 lead slip late on at 10-man Palmeiras. Luis Fabiano put the visitors ahead after 13 minutes and they looked set for victory when Henrique was dismissed nine minutes into the second half, but they had to be content with a 1-1 draw as Mazinho equalised with eight minutes to play.
Internacional were also held by 10 men as they played out a goalless draw against Santos, who had Juan sent off three minutes after the restart.
Gremio won 3-1 at Cruzeiro despite playing the whole of the second half with 10 men.
Marcelo Martins and Kleber had put them 2-0 up by the time Werley was sent off a minute before the break. They made light of their disadvantage as Martins scored another after 65 minutes, before Wellington Paulista pulled one back from the spot in the dying seconds.
Flamengo shrugged off the dismissal of Luiz Antonio, also a minute before half-time, as they won 2-1 at Bahia. The winner came from Renato Abreu's penalty after Kleberson had scored for Bahia to cancel out Hernane's 30th-minute opener.
Henrique and Gilberto were on target as Sport Recife claimed a 2-1 win over Portuguesa, who pulled one back through Moises.