Buck hit a three-run home run in Florida's five-run first inning and the Marlins held on for a 7-6 win over the Reds on Friday night.
Buck was a big free agent signing for the Marlins in the offseason, but he entered the game with a .208 average and an 0-for-12 slump. He hadn't homered since hitting a grand slam on April 1.
"John Buck's our number one catcher. He has been doing an excellent job," Edgar Rodriguez said. "Not offensively, but he's been good calling the games and working with the pitchers. We know that eventually he will start hitting more consistently."
The 31-year-old catcher hit 20 home runs in 118 games for Toronto last season.
Ramirez was struggling at .197 to start the game but is showing signs of coming around.
He snapped an 0 for 17 with a pinch hit on April 25 and had two hits the next day. Ramirez doubled in the first inning and hit a shot off the gold glove of Brandon Phillips to drive in two runs in the fourth inning.
"It's only the first month of the season," Ramirez said. "You can't let it get in your head. People kept telling me not to worry, you can hit. We have five months to go plus the playoffs."
Javier Vazquez (2-2) gave up four runs on four hits with three strikeouts and three walks in six innings for Florida. He also had two hits, including an RBI single in the first.
"He hurt us as much with his hitting as he did with his pitching," Reds manager Dusty Baker said.
Leo Nunez allowed two runs in the ninth before escaping with his eighth save.
The Marlins sent 10 batters to the plate, hit for the cycle and drew two walks in the first inning.
"I figured he was going to try to come inside and he left it out over the plate a little bit," Buck said.
Bonifacio tripled to lead off the game and scored on Omar Infante's sacrifice fly. Buck, hitless in his last 12 at bats, lined a 2-2 pitch into the first row of the right-field seats for a 4-0 Florida lead.
Vazquez capped the scoring by grounding a single up the middle for his first RBI since 2009, when he was with Atlanta. He spent last season with the New York Yankees and had five plate appearances.
"I was just trying to put the ball in play. It was just luck," Vazquez said.
The Marlins scored more runs in the first inning than they scored in their 5-4, 10-inning loss to Los Angeles on Wednesday.
Bruce hit his fourth home run of the season, a 432-foot shot to center field, with one out in the bottom of the first. Hermida added a three-run shot to right in the fourth, his first hit with Cincinnati since being called up from Triple-A Louisville on April 18.
Wood (1-3) lasted 3 1/3 innings. He allowed seven runs, all earned, on eight hits with two walks and three strikeouts. He has allowed exactly eight hits in each of his last three starts.
"There is no excuse for giving up five runs in the first inning," Wood said. "I was missing spots and they were hitting them."
The Marlins are off to the best start in their history for 24 games at 16-8.
"The first game of the road trip, the first game after a day off and a tough loss at home, it was a nice bounce back for the team," Rodriguez said.
Florida OF Chris Coghlan was available to pinch-hit Friday after leaving Wednesday's game against Los Angeles with tendinitis in his right shoulder. Manager Edwin Rodriguez said Coghlan could start Saturday. ... Cincinnati 1B Joey Votto walked in the fourth to extend to 26 his streak of consecutive games in which he's reached base at least once. Votto has played in every Reds game this season. ... Slumping Cincinnati LF Jonny Gomes didn't start and flied out as a pinch-hitter in the eighth. Gomes went 2-for-18 while playing in five of the Reds' six games on their last road trip and went into Friday's game hitting .200. ... RHP Carlos Fisher made his first appearance since being recalled by Cincinnati on April 22.