Sao Paulo held on for a 3-2 win at Cruzeiro, who slipped from the top of the Campeonato Brasileiro following their first defeat of the season.

Luis Fabiano opened the scoring for the visitors in the 12th minute, but the lead lasted barely 60 seconds before Rafael Donato levelled.

Lucas put Sao Paulo back in front in the 16th minute and Jadson made things more comfortable four minutes into the second half, meaning Donato's second in the 53rd minute was not enough for Cruzeiro.

That allowed Vasco da Gama to go top as they twice came from behind to beat Ponte Preta 3-2.

Twice Roger (17, 27) put the visitors ahead, but Vasco stormed back first through Alecsandro (21) and then Eder Luis (49), before Diego Souza scored the winner from the spot 13 minutes from the end.

Fluminense also went above Cruzeiro and into second as they won 2-0 at Nautico Recife thanks to a goal in each half from Samuel.