Jay Bruce hit a two-run homer in the bottom 6, in the finale of a game series.
Nick Masset (3-5) tossed a scoreless top of the 11th to earn the win for the Reds, who captured the final three games of the series.
"We're satisfied we got the victory," Reds manager Dusty Baker said.
Cubs starter Randy Wells surrendered five runs over 4 1/3 innings. He has not lost since July 28.
"We kept playing, but we came up a little short," Cubs manager Mike Quade said.
Trailing 4-2, Bailey began the fifth with a single and Phillips doubled to place runners at second and third. Drew Stubbs brought Bailey home with a base hit before a Votto walk loaded the bases. Wells walked Yonder Alonso to push across the tying run before giving way to Jeff Samardzija. Heisey's infield single, which deflected off of Samardzija, made it a 5-4 game.
The Reds added a run an inning later when Paul Janish walked, advanced to third on Stubbs' single and scored on John Gaub's wild pitch.
Jose Arrendondo and Bill Bray combined to toss two scoreless innings of relief before handing the ball to Francisco Cordero in the top of the ninth.
The pinch-hitting Campana led off with a single before Soriano ripped a two- bagger into the left field corner. Two batters later, Barney singled to tie the game.
In the first, Aramis Ramirez singled with two down and Pena unleashed a mammoth blast to center. The ball reached the deck of Great American Ball Park's riverboat, which resides beyond and above the center field wall.
Bryan LaHair followed with a single and Byrd made it a 4-0 game with a homer to left-center.
Given new life, the Reds responded. Homers by Phillips and Heisey in the third and fourth, respectively, cut the Cubs' advantage in half before the go- ahead fifth.
Bruce hit his third career walkoff home run...Soriano became the 167th player to reach 400 career doubles...Cordero suffered his sixth blown save of the season. He had converted 16 straight saves...Wells is 5-0 in nine starts since the beginning of August.