Rafael Marques gave the visitors a 23rd-minute lead and when Clarence Seedorf doubled the advantage seven minutes later, they were well on their way to victory.
However, Andre pulled a goal back on the stroke of half-time and equalised two minutes after the restart - only for Rafael Marques to net what proved to be the winner in the 3-2 success in the 49th minute.
Fourth-placed Internacional slipped four points off the pace as a result of their 1-1 draw at Gremio.
Hernan Barcos opened the scoring for the home side in the 19th minute from the penalty spot - but Leandro Damiao levelled just two minutes later.
Atletico Paranaense moved into the top half with a 2-0 win over Goias, Guilherme Dellatorre and Ederson getting the goals at the end of each half.
They remain a point behind Corinthians, for whom Renato Augusto and Paolo Guerrero (penalty) netted inside the first 26 minutes to set up an away win at Criciuma.
Flamengo climbed away from the strugglers with a 3-0 home win over Atletico Mineiro, courtesy of goals from Nixon (eight), Elias (14) and substitute Paulinho (75).
Goals in the last 19 minutes from Danilo Tarracha and Fabricio gave Vitoria a 2-1 win which moves them up to sixth - Marcelo Canete had given struggling visitors Portuguesa a 63rd-minute lead,
William's 86th-minute goal for Ponte Preta earned them a 1-1 home draw with Fluminense, who had led through Gum (50).