The game started 19 minutes late. There was a 15-minute delay in the top of the fifth and a 1-hour, 11-minute delay in the bottom of the sixth.

Hamilton's solo homer off Jeff Samardzija (0-3) tied it in the fifth. Zack Cozart tripled to right-center field with two outs in the sixth, and Heisey's pinch-hit single put the Reds ahead as heavy rain started to fall and the third rain delay followed.

Jonathan Broxton retired all three batters in the ninth for his fifth save in as many chances.

The Cubs have lost five of their last six games, falling to 8-17.

The series opener on Monday was postponed because of rain and hasn't been rescheduled. The Reds have had seven rain delays in 11 home playing dates this season, with one game postponed and another suspended overnight.

It was another solid but winless performance for Samardzija, who has not gotten a victory in his last 12 starts since Aug. 30. The Cubs haven't scored while he was on the mound -- only 32 runs in those 12 starts.

Samardzija was in line for a win in his last start, but the bullpen blew a 5-2 lead last Wednesday in a 7-5 loss to Arizona.

Hamilton had his most productive game as Cincinnati's leadoff hitter, reaching base four times by a walk, two singles and a homer. He scored twice, giving him 12 runs this season.

Hamilton opened the first inning with a walk, stole second and took third on a wild pitch. Brandon Phillips' sacrifice fly made it 1-0.

Hamilton had an infield single in the third and was thrown out by catcher Welington Castillo, the fifth time in 15 attempts that he's been caught stealing this season.

Hamilton shortened to bunt twice in the fifth inning before hitting his first career homer to right field, tying it 2-all.

Cubs second baseman Darwin Barney made the best defensive play of the game. He went up the middle to reach Ryan Ludwick's grounder in the fourth, got to the ball on the third base side of the bag and threw Ludwick out from the outfield grass.