Bruce led the Reds with three hits. Brandon Phillips had a two-run double in the ninth, and Choo had two hits and scored three runs as the Reds split the four-game series.
"We've had a good first half," Bruce said. "Obviously, we're not in first place and that's where we want to be, but we've played well, especially with the injuries we've had. To still be right here in the hunt, we're in good shape right now.
"We're looking forward to the second half."
The Reds began the day five games behind St. Louis and Pittsburgh in the division. They gained a game on the Pirates, who lost to the Mets. The Cardinals played the Cubs on Sunday night.
"It makes for a better All-Star break," Reds manager Dusty Baker said. "We had a chance to really take three out of four or maybe even sweep them but we'll take what we got."
Bruce's homer was his first since he hit two on June 22. He had gone 18 games without one.
"I really don't pay attention to that stuff," he said. "I started off July a little slow but slowly got heated up a little bit. It's a long month."
Reds right-hander Logan Ondrusek (3-0) threw two scoreless innings as the second reliever behind Tony Cingrani, who lasted only four innings.
Teheran (7-5) allowed five runs, seven hits and two walks in 5 1/3 innings.
Braves first baseman Freddie Freeman was held out because of a jammed left thumb that will prevent him from playing in the All-Star game on Tuesday. The Braves had outfielders Jason Heyward, Justin Upton, B.J. Upton and Freeman sustain injuries in the series.
The team placed B.J. Upton on the 15-day disabled list before the game with a right adductor muscle strain.
"We lost a lot of key players but the guys that stepped in did a terrific job for us," Braves manager Fredi Gonzalez said. "You felt good that we had a chance. Even today. We hit the ball hard.
"Anytime your back is up against it like we were and guys respond, you feel good about your club."
Atlanta catcher Brian McCann was named to replace Freeman on the NL All-Star team.
Control problems pushed up Cingrani's pitch count. The rookie left-hander, who threw 96 pitches, allowed two runs -- one earned -- four hits and three walks in four innings. It matched his shortest start.
Cingrani was frustrated early in the game by home plate umpire Sam Holbrook's strike zone.
"They were calling them low, and Tony and (catcher) Devin (Mesoraco) thought they were strikes," Baker said. "Sometimes you get tested, especially when you're a rookie and you're not going to get a lot of the near-strikes. Sam was consistent and that's all you can ask the umpire to do."
Cingrani gave up a run in the second but stranded three runners. Reed Johnson singled with two outs and scored on Gerald Laird's double. Cingrani loaded the bases with two walks, but ended the inning by snagging Jose Constanza's liner.
Atlanta's missed opportunity for a bigger inning set the stage for the Reds' four-run third. Cingrani led off with a bunt single, and Choo also singled before Votto's double and Brandon Phillips' groundout each drove in a run. Bruce's 19th homer pushed the lead to 4-1.
The Braves added an unearned run in the third. Simmons walked, moved to third on Chris Johnson's single and scored when Reds shortstop Zack Cozart caught a liner by Evan Gattis and then threw wildly to first base in an attempt for a double play.
Choo led off the fifth with his 13th homer.
Gattis was 0-for-4 in his return from the disabled list after playing only two games in his rehabilitation stint with Triple-A Gwinnett.
Gattis was the fill-in starter for Freeman, who jammed his thumb Saturday night. Gattis had been out since June 18 because of a right oblique strain.
Constanza made a running catch of Choo's drive to left field in the first inning and made another leaping grab of a drive by Bruce in front of the wall in the ninth.
Cingrani also lasted only four innings on May 10 against Milwaukee. ... The Reds went 3-4 on their seven-game trip, splitting the four-game series with Atlanta. ... McCann is a seven-time All-Star. ... Gonzalez said doctors have determined Justin Upton sustained a severe cramp, instead of a strained left calf, in Friday's game. The Braves hope Justin Upton and Heyward (strained right hamstring) can return after the All-Star break without DL stints.