SAN FRANCISCO -- There's a huge parade scheduled in Miami on the day after the Marlins' first winning road trip in 13 months.
It's just a coincidence.
Three days after the Miami Heat wrapped up a parade-producing NBA championship, the Marlins recorded a small piece of history themselves when they beat baseball's reigning champs, the San Francisco Giants, for the third time in four days Sunday afternoon, 7-2.
Justin Ruggiano hit Matt Cain's second pitch for a home run, his first of two in the game, and Nathan Eovaldi pitched into the seventh inning for his first win of the season as the Marlins put the finishing touches on a 4-3 Western swing to nail down their first winning trip since last May.
"Awesome road trip," Ruggiano said of a venture that began June 17 in Arizona. "It's kinda exciting to come to the ballpark. We're having fun."
The Marlins had won a total of only eight games in five previous trips this season. That's a big reason why, even after winning three of four in San Francisco, they retain the worst record in baseball (25-50).
"I don't think we'll see April and May again," Ruggiano said of the team's 13-41 start. The Marlins have gone 12-9 since then.
Eovaldi, who was torched for eight runs on 10 hits when he faced the Giants for the Los Angeles Dodgers last June, was much sharper this time. He shut out San Francisco on two hits through five innings before Tony Abreu's triple and Hunter Pence's home run helped the Giants produce single runs in the sixth and seventh.
Making only his third start of the season after suffering from right shoulder inflammation during spring training, the hard-throwing right-hander was pulled two batters into the seventh, having allowed two runs on four hits. He struck out seven and walked two.
"Our pitching has been phenomenal," Marlins manager Mike Redmond said after a series in which his team started the likes of Tom Koehler, Jacob Turner and Eovaldi and yet the Giants scored a total of eight runs. "After what we went through in April and most of May, it's good to see guys getting some results."
Ruggiano's first career leadoff home run staked Eovaldi (1-0) to a lead even before he took the mound. It's something the young outfielder said he learned from a baseball superstar who spent most of his career on the other side of the San Francisco Bay.
"The first pitch of the game, I'm looking to jump on it. That's how Rickey Henderson used to do it," he said. "The first pitch was a ball. The second pitch was a fastball, and I jumped on it."
The Marlins made it 3-0 with single runs in the fourth and sixth innings. Marcell Ozuna, who had game-winning hits in Miami victories Thursday and Friday nights, drove in Logan Morrison with a double in the fourth. First baseman Brandon Belt's error on a hot shot by Morrison allowed Ed Lucas to score in the sixth.
In losing for just the second time since April 18, Cain (5-4) pitched six innings, allowing three runs on six hits. He struck out eight and didn't walk a batter for the second consecutive start.
However, he got no runs of support while he was in the game.
Miami won for the 10th time in its past 11 games at AT&T Park.
"That's just baseball," Giants right fielder Hunter Pence said in trying to explain the Giants' struggles with the Marlins. "We've got a long way to go. These stretches make you stronger."
Ozuna's second home run of the season, a leadoff blast off Jean Machi, triggered a four-run Miami ninth that iced the victory.
Pinch hitter Greg Dobbs' two-out double scored Derek Dietrich to make it 5-2 before Ruggiano blew it wide open with his second home run, giving him his second multi-homer game of the season and giving him 11 overall.
"Great day," Redmond said. "Great series."
The Giants, who dropped four of seven to San Diego and Miami to account for their first losing homestand of the season, had two late chances to tie. Marlins reliever Ryan Webb got pinch hitter Joaquin Arias to ground into an inning-ending double play with a runner on third base in the seventh, and a baserunning gaffe by Marco Scutaro short-circuited an opportunity in the eighth.
After a one-out infield hit off Chad Qualls in the eighth by Gregor Blanco, his second of the game, Scutaro singled to right-center, sending Blanco to third. When right fielder Giancarlo Stanton threw to third in an effort to get Blanco, Scutaro tried for second but was gunned down for the second out.
Qualls then got Buster Posey to ground to shortstop to end the inning.
"When you're starting to go in a positive direction, you're going to get breaks," Redmond said. "In April, that ball (the throw by Stanton) might have taken a bad hop and wound up in the stands. That could have been the game."
NOTES: The Marlins had gone 1-5, 2-4, 3-7, 0-5 and 2-3 on their previous five trips this season. ... Ruggiano's previous two-home run game came May 5 at Philadelphia. ... The Giants are 13-17 against teams with losing records. ... Giants manager Bruce Bochy announced after the game reserve INF Nick Noonan would be sent to Triple-A Fresno when the team activates 3B Pablo Sandoval from the disabled list Monday. ... With a parade in town, the Marlins are off Monday. The Giants probably wish they were. They have a big question mark for their starting pitcher Tuesday in the second game of their series in Los Angeles. RHP Chad Gaudin, who had to leave Thursday's game against Miami after getting hit near the right elbow with a line drive, is making slower-than-expected progress, which could result in minor league LHP Mike Kickham being promoted to make the start.