Argentine defender Damian Escudero scored one of the goals for Atletico Mineiro, which has won 10 of its last 12 matches and has a three-point lead over Fluminense near the competition's halfway point. Atletico has a game in hand over the top title contenders.
Third-place Vasco da Gama lost 1-0 to Rio de Janeiro rival Flamengo and is seven points off the lead, while fourth-place Gremio moved to within eight points of Atletico by routing last-place Figueirense 4-0.
Neymar helped Santos beat defending champion Corinthians 3-2 with the help of a refereeing error that allowed one of its goals to stand despite three players being offside.
Clarence Seedorf's Botafogo opened the scoring at the Independencia Stadium in Belo Horizonte with a goal from midfielder Andrezinho in the 35th minute, but former two-time world player of the year Ronaldinho put Atletico back in the game by setting up a goal in each half.
First he sent a perfect long pass to striker Jo inside the area in the 43rd, and Escudero easily found the net off the rebound of Jo's shot to equalize just before halftime.
Ronaldinho then received a pass inside the box in 55th and dribbled past the goalkeeper before providing the ball for Jo's goal.
Andrezinho evened the match for Botafogo by converting a penalty kick in the 80th, but substitute striker Neto Berola netted Atletico Mineiro's winner in the 88th, giving Atletico its 13th win in 17 matches.
Atletico Mineiro is trying to win its first national league title since 1971. It became a top contender this year after signing Ronaldinho from Flamengo earlier in the season.
Fluminense stayed close by beating Sport 1-0 with an 83rd minute goal by striker Samuel in Volta Redonda, but Vasco da Gama lost ground after its loss to Flamengo at the Engenhao stadium. Vagner Love scored Flamengo's goal in the 38th off a rebound by Vasco goalkeeper Fernando Prass, who could not hold on to a shot from the top of the area.
Defending champion Corinthians loudly complained of the officiating crew in its 3-2 loss to Santos at the Vila Belmiro stadium, especially for allowing Santos' second goal to stand, when the match was level at 1-1.
Television replays showed that three Santos players were offside as the ball crossed into the area. Another player was offside when the ball was headed toward the goal in the same play, and then striker Andre also was offside when he headed the ball into the net near the goal line.
Neymar set up two goals for Santos, including Bruno Rodrigo's winner in the 84th, while one of Corinthians' goals was scored by substitute Argentine playmaker Juan Manuel Martinez.
The result ended Corinthians' nine-match unbeaten streak. The team is only 10th in the 20-team standings, while Santos is 12th.
Also Sunday, Coritiba routed Cruzeiro 4-0 in Curitiba, while Internacional drew Portuguesa 1-1 in Sao Paulo. Brazilian Cup winner Palmeiras lost 2-1 to Atletico Goianiense in Goiania.
Hernan Barcos scored for Palmeiras, which lost Chilean playmaker Jorge Valdivia in the second half because of an apparent muscle injury.