Travis Shaw lined a two-out solo homer off Reds' reliever Tony Cingrani to tie the game at 3 in the top of the eighth before Hamilton helped manufacture the game-winner. He worked a leadoff walk from Brewers closer Corey Knebel, pitching out of his usual role because he needed the work, then swiped second base with no outs and third base with one out to set up the winning run.
"Knebel's really good," said Reds manager Bryan Price. "I voted for him for the All-Star team. He's just having a huge year and he's really good. And he threw a breaking ball there and [Duvall] was able to stay on it enough to put it in play."
Brewers manager Craig Counsell, meanwhile, lamented the leadoff walk.
"That's the at-bat of the inning," Counsell said. "It wasn't so much the stolen base, it was the walk that got us in trouble."
The Brewers were in trouble from the start, forced to turn to reliever Paolo Espino after starter Chase Anderson sustained a left oblique injury and exited the game following a second-inning at-bat. Duvall was the first batter Espino faced, and the Reds' left fielder quickly hit a solo home run to make it a 1-1 game.
Milwaukee and Cincinnati traded homers in the third inning. First, Ryan Braun hit a solo home run off Reds starter Luis Castillo -- his first since April 28 and his 23rd at Great American Ball Park, tying Lance Berkman for most by a visiting player -- to regain the lead. Then, Reds second baseman Scooter Gennett fired back in the bottom of the frame with a two-run homer that gave Cincinnati a 3-2 advantage.
In his second Major League start, Castillo tossed 5 2/3 innings of two-run ball, striking out nine and walking three. His 107th and final pitch clocked in at 99 mph and struck out Keon Broxton, who stepped to the plate with a runner on third and one out in the top of the sixth.
"I feel comfortable playing at home now, so it's a different way to pitch," Castillo said via translator Julio Marillo. "Today, I was focused on trying to hit the spots, and I had a really good feel for my breaking-ball pitches, so today was a great way for me."
Defense backed up Castillo multiple times. But the play of the night belonged to Reds right fielder Scott Schebler, who climbed the wall in the corner to take a three-run homer away from Brewers catcher Stephen Vogt. Shaw was able to tag up from third, giving Vogt a sacrifice fly and Milwaukee a 1-0 lead.
"Day in, day out, we play defense," Schebler said. "We take pride in it. Shoot, in a game like this where it's a one-run game, that's so important. So important. Any time you can pick up your pitchers, it gives them some extra confidence. It comes down to taking pride in it and we do. That's something we really, really work hard on and we do take pride."
MOMENTS THAT MATTERED
Schebler's world-class catch: Right after Hamilton bailed him out on a fly ball that got away from him, Schebler made perhaps the play of the season in the top of the second. With runners on the corners and one out, Vogt lifted a ball high to the corner, where Schebler sprinted to the fence, climbed up the wall and made the catch to save what would have been a three-run homer.
"There was nobody that took it in the shorts worse than Vogt did today with the way he swung the bat," Price said. "He hit the ball over the fence that Schebler robbed and two missiles that Schebler ran down. It was some incredible defense, and I certainly didn't anticipate Schebler going over the wall, scaling the wall and making the play. Not because he can't do it but it's just, you can never anticipate those plays being made."
Said Vogt: "That's one of the best catches I've seen. A little frustrating, but tip your cap."
Shaw's game-tying blast: Trailing, 3-2, in the top of the eighth, Shaw stepped to the plate with two outs and smashed the first pitch he saw from Cingrani for a solo home run to center field, Shaw's third homer in as many days. It had an exit velocity of 107 mph, a launch angle of 19 degrees and traveled 412 feet.
Game-ending double play: The Brewers had a chance to tie the game in the bottom of the ninth, as they put runners on the corners with one out against Reds closer Raisel Iglesias, but the scoring threat soon ended as quickly as it came together. Jesus Aguilar struck out on a 97-mph fastball, and Tucker Barnhart quickly fired to second to stop Orlando Arcia from stealing. Gennett then tagged the Brewers' shortstop before Jonathan Villar crossed the plate to end the game.
"The play is that Orlando stops," said Counsell, who confirmed the play was called from the bench. "It was going to work, and Orlando just didn't stop in time, and they got a tag."
"It could be a month, it could be two months. Hopefully nothing longer than that. Obviously, I hate sitting out. I don't want to be on the DL, I want to pitch. I'm throwing the ball well lately." -- Anderson, on leaving with an injury
"I went to the mound and took out Castillo. There were a bunch of infielders out there. Everyone was out there. To a man, they were going, 'Wow, this kid is really a talented kid.' It's nice to have your infielders really excited to have a starter that is taking the mound and they really like being behind this guy." -- Price, on his rookie starter.
SOUND SMART WITH YOUR FRIENDS
Knebel took the loss, but he did tie a 40-year-old Major League record. With at least one strikeout in 39 straight games, he matched Bruce Suter's all-time mark for relievers. Suter set the record with the Cubs in 1977.
DON'T CALL ME AGAIN
Technicians had restored service to the phones in the visitors' dugout at Great American Ball Park by Wednesday afternoon after the lines to the bullpen and to the Brewers' replay monitors in the clubhouse were down Tuesday night. The Reds provided the Brewers with walkie talkies to restore communication.
A discussion of the latter led Counsell to a great story.
"We've had strangers call the dugout phone before," Counsell said.
He was serious.
"Last year, there was a call to the dugout phone at home," Counsell said. "They criticized some decision, of course. Or second-guessed, I should say. It happened once, so we had to change the number."
WHAT'S NEXT Brewers: The Brewers will try to get back to .500 in Jimmy Nelson starts when the right-hander takes the mound in Thursday's 6:10 p.m. CT series finale. They are 7-8 in Nelson's starts so far, including 5-5 over his last 10, with Nelson posting a 2.64 ERA. He beat Cincinnati at Great American Ball Park on April 13 with seven quality innings.
Reds:Homer Bailey will look to put his last outing behind him as he starts for the Reds in Thursday's 7:10 p.m. ET series finale. Making his season debut Saturday after spending the first part of the season on the disabled list while recovering from elbow surgery, he gave up eight runs over 1 2/3 innings in Cincinnati's 18-3 loss to the Nationals.