SAN FRANCISCO -- Nathan Eovaldi showcased his power arm, and Justin Ruggiano provided some punch of his own.
Eovaldi struck out seven in six innings, and Ruggiano opened the game with the first of his two home runs as the Marlins topped the Giants, 7-2, on Sunday to take three of four in the series at AT&T Park.
Miami completed its first winning road trip of the season, going 4-3 at Arizona and San Francisco.
"After a long trip, you never know the last day how the energy is going to be," Marlins manager Mike Redmond said. "In that first inning, when we got in the dugout, guys were fired up. They were like, 'Let's win this game!' I loved the energy, and Ruge hit the home run to start the game, and guys were fired up. I was like, 'We're going to be in business today.'"
It's been a long time coming since the Marlins enjoyed a winning road trip. They last did it May 16-20, 2012, taking three of five at Atlanta and Cleveland.
Bouncing back from a tough 2-1 loss in 11 innings Saturday, the Marlins were able to close out the series behind strong pitching and power hitting.
Marcell Ozuna smashed a solo home run in the ninth inning, and he drove in two runs. After Greg Dobbs hit an RBI double in the ninth, Ruggiano clobbered a two-run shot to straightaway center.
"Awesome road trip," Ruggiano said. "First time this year, you see things turning around a little bit. It's exciting coming to the ballpark. The lineup is coming back together; we're having fun. That's all I can say, we're having fun."
Giants ace Matt Cain struck out eight in six innings, but the Marlins were able to push across three runs on six hits off the right-hander.
For the second straight game -- and third time all year -- Redmond started Ruggiano in left field over Juan Pierre. The move replaced speed for power. Because the Marlins have played so many close games on the road trip, Redmond's thinking was Ruggiano could generate a run with one swing.
The decision produced immediate results. On the second pitch of the game, Ruggiano unloaded a home run to center off Cain.
"These are the only times I've hit leadoff before," Ruggiano said. "I'm saying, I'm going to jump that first pitch, the first pitch of the game, kind of like Rickey Henderson used to do it.
"The first pitches have been balls all three times. But the second pitch was there this time, and I got him. It was a fastball. I'm sure he was just trying to get strike one. I actually put some good wood on it."
It was Ruggiano's first career leadoff homer and Miami's second of the season. Pierre delivered the other May 16 at home against the Reds. Ruggiano's ninth-inning shot gave him his second career multi-homer game, and all 11 of his home runs this season have come on the road.
The Marlins stretched their lead to 2-0 on Ozuna's RBI double in the fourth inning, which scored Logan Morrison, who singled, from first.
Miami tacked on a third run in the sixth inning, capitalizing on singles by Ed Lucas and Giancarlo Stanton, which put runners on the corners with no outs. Lucas scored on Morrison's grounder to first that was misplayed by Brandon Belt for an error. Morrison was credited with an RBI on the play.
Eovaldi limited the Giants to two singles and a walk through five innings.
"My fastball command was there again," said Eovaldi, whose fastball maxed at 98 mph. "I was spotting up my slider early on. We made some good plays, too. We just had a lot of stuff going our way today."
In the sixth, San Francisco broke through for a run on Marco Scutaro's RBI groundout to second. Tony Abreu got the inning going with a pinch-hit triple to left.
"We saw a great arm today," Giants manager Bruce Bochy said. "They pitched great [all series]. Still, you've got to find a way to score runs."
The Marlins limited the Giants to eight runs in the four games.
The Marlins, 11-9 in June, are showing improvement mainly because players are getting healthy. Sunday was Eovaldi's second start since being reinstated from the 60-day disabled list.
"Eovaldi went out there and pitched great," Redmond said. "He threw a lot of strikes. For his second start, he gave us exactly what we needed."
In the seventh, however, Eovaldi hung a slider to Hunter Pence, who crushed a home run to lead off the inning.
The Giants threatened for more in the seventh after Andres Torres' bad-hop single. Ryan Webb got out of a first-and-third jam by getting pinch-hitter Joaquin Arias to tap into a 1-6-3 double play.
"That's why we practice it every day in Spring Training," Webb said. "It really is just a reaction play. As soon as I caught it, I made sure I had the grip on it. Thankfully, we were able to turn it. I'm not sure I've ever had to make that play before, to be honest."
Chad Qualls worked out of a bind in the eighth inning by retiring Buster Posey on a ground ball to shortstop, stranding Gregor Blanco at third.
A key out came when Scutaro was thrown out at second trying to advance after his single to right. Stanton threw to third trying to get Blanco, and Scutaro dashed to second, where he was caught.
"When you are moving in a positive direction and you're starting to win some games, you're going to get some breaks," Redmond said. "It seems like when you're not playing well, you don't get any breaks. For a long time, we were not getting any breaks."