Cincinnati has won eight of its last nine games, while Milwaukee limped into town and dropped its seventh straight.
Johnny Cueto gave the Reds seven quality innings but was in danger of a no-decision when he was lifted for pinch-hitter Chris Heisey in the bottom of the seventh. The score was tied at 1 as the Reds faced reliever Todd Coffey.
"He was the best fastball hitter I had on the bench," Reds manager Dusty Baker said of choosing Heisey for that situation.
Heisey delivered by sending a 2-0 fastball over center fielder Jody Gerut's head and to the wall for the first of four consecutive hits against Coffey. Heisey scored the go-ahead run on Orlando Cabrera's rolling single up the middle.
Brandon Phillips and Joey Votto followed with singles, but the momentum did not stop when Phillips was out in a rundown between second and third. Scott Rolen got Cabrera in with a sacrifice fly.
The Brewers had Coffey intentionally walk Jay Bruce with two outs to face Gomes.
You could say that the decision raised Gomes' intensity a few notches.
"When you get that guy in front of you intentionally walked, not really to set up a double play or a special matchup, you dig down," Gomes said. "It's a little character-check for yourself."
Coffey, the former Reds reliever, couldn't have chosen a worst first pitch for Gomes. It was a 95-mph fastball over the heart of the plate that Gomes tattooed 408 feet and over the left-center wall for a three-run homer.
"No excuses. In that situation, to give up five runs is embarrassing," Coffey said. "Any pitch that is hit out for a home run is bad location. I haven't looked at it. It was a bad pitch."
Coffey hit next batter Drew Stubbs in the back with his next pitch, which prompted umpire warnings to both benches. There was no retaliation from the Reds.
In a decent followup to the first shutout of his career on Wednesday at Pittsburgh, Cueto (3-1) gave up one run and seven hits with seven strikeouts. After allowing no walks the last time out, he walked only one batter against Milwaukee.
"It was right on time for Johnny," Baker said of the Reds' rally. "We wanted him to get the win, especially the way he had pitched tonight."
Cueto had some defensive help behind him, and two big plays in particular. After Alcides Escobar hit a one-out triple in the first inning, he tried to score on Ryan Braun's sharp grounder to shortstop. On a heads-up play, Cabrera fired a throw home to get Escobar out at the plate.
"He's one of the smartest players I've been around," Baker said. "That was a very smart play, knowing how hard the ball was hit. That would have gotten them on the board. That was a tremendous play you don't see very often."
Cueto gave up Corey Hart's solo homer to center field with one out in the fourth and walked next batter Gregg Zaun on four pitches. A Gerut grounder to second base sailed between Phillips' legs for a rare bad error that moved Zaun to third. Brewers starter Yovani Gallardo flied out to center field as Zaun tagged up. A one-hop throw to the plate by Stubbs beat Zaun by two steps to complete the double play.
Gallardo kept the Reds scoreless until Votto's RBI double in the sixth and escaped a bases-loaded jam that inning. But Gallardo threw 120 pitches and had to give way to the bullpen.
Nick Masset gave the Reds a scoreless eighth, but a quick end it wasn't. Pitching for the first time in nine days, Daniel Ray Herrera gave up three hits, including Hart's leadoff homer, a Zaun double and Craig Counsell's pinch-hit single. Francisco Cordero got the final two outs, but not before Braun represented the tying run as he flied out to the end the game. Cordero earned his 13th save.