Adams broke an 0-for-17 slump by connecting in the 14th. After St. Louis let that lead get away, he homered again off Logan Ondrusek (3-1), ending the Reds' longest game of the season.
The Cardinals had dropped the first two games in the series, letting the Reds get within a game and a half for second place. They finish their season series on Thursday. St. Louis leads it 11-8.
The Cardinals have dropped five of seven overall, costing them precious ground in the division's three-team race. The Pirates, Cardinals and Reds are all in good shape to make the playoffs -- one as a champion, the other two as wild cards.
St. Louis wasted a chance to put it away in the 14th inning.
Hamilton ran for Ryan Ludwick after his single off Edward Mujica, who blew a save chance for only the third time in 38 chances. Hamilton stole second -- he's 2 for 2 against catcher Yadier Molina -- and scored easily on Zack Cozart's single.
Leadoff hitter Matt Carpenter had three hits and a walk, scoring twice. Carpenter has five of the Cardinals' 14 hits in the last two games.
Bronson Arroyo broke with his history of subpar showings against the Cardinals. It was his 38th career start against St. Louis -- more than against any other team -- and he didn't have a lot to show for it, going 0-3 against the Cardinals this season and 8-16 in his career.
He went seven innings and allowed three runs -- two earned -- giving the Reds chances that they squandered.
Craig sprained his left foot while rounding the base on the play and left the game. He'll be examined again on Thursday.
Brandon Phillips led off the fifth with his 18th homer, giving him 100 RBIs. He's the first Reds second baseman to reach the mark since Hall of Famer Joe Morgan drove in 111 in 1976, when the Reds swept the Yankees for their second straight World Series championship.
RH Jake Westbrook felt good a day after he threw in the bullpen. Westbrook has been sidelined since Aug. 22 with a strained lower back. He's eligible to come off the DL on Friday. Manager Mike Matheny isn't sure whether he'll use him as a starter -- as Westbrook prefers -- or out of the bullpen when he returns. ... Carpenter leads the NL with 169 hits and 15 three-hit games. ... Arroyo tied a Reds record with three sacrifice bunts. ... LH Tony Cingrani (6-3) starts the final game of the series for Cincinnati. He went on the DL after leaving a game Aug. 20 with a strained lower back. RH Lance Lynn (13-9) starts for St. Louis. He's 3-0 in four starts against the Reds this season.
Follow Joe Kay on Twitter: http://twitter.com/apjoekay