Wellington Nem put Fluminense in front after 56 minutes, but Jo equalised 13 minutes later as the game belatedly sparked into life.
Jo scored his second on 82 minutes only for Fred to make it 2-2 just three minutes later, but there was still time for Leonardo Silva to snatch a last-minute winner.
Goals were harder to come by elsewhere, with three 1-0 wins and one goalless draw in the day's other four games.
Sport Recife won 1-0 at bottom side Atletico Goianiense thanks to a 49th-minute strike from Gabriel Marquinhos, while Flamengo beat Sao Paulo by the same scoreline courtesy of a 72nd-minute goal from Marcos Gonzalez.
Ponte Preta beat Santos 1-0 after Gedeao de Paiva's early goal, while the game between Nautico Recife and Portuguesa finished goalless.