Prone to giving up homers, Florida Marlins right-hander Chris Volstad allowed only three fly balls Sunday against the San Francisco Giants.

Of course, all of them cleared the fence.

Volstad struggled in his first start for Florida since being demoted to Triple-A last month, and the Marlins lost 5-2.

Volstad said at least a couple of the homers were fat pitches.

"Up and over the middle," he said. "They hit those balls hard. I guess they're supposed to."

Cody Ross ended the Giants' major league-record streak of 21 consecutive solo homers when he hit a two-run shot in the third inning. It was the first non-solo homer for San Francisco since July 6.

Nate Schierholtz started a new streak with a solo homer in the fourth. Brandon Belt, recalled Saturday from Triple-A, hit solo homers in the sixth and eighth.

Homers accounted for all four runs off Volstad (5-9), who went six innings. He has allowed 19 home runs in 117 1-3 innings this season, a major reason his ERA is 5.60.

"He didn't pitch bad except for the home-run balls," manager Jack McKeon said. "With our offense, we can't afford to give up too many runs early."

The Marlins faced the Giants' three All-Star starters in the series, and it showed — Florida totaled four runs and 15 hits.

The Marlins, who have struggled at home all season, scored only 25 runs while going 1-9 on their homestand.

"You hope every squirrel finds an acorn every once in a while," McKeon said. "We just haven't been able to find any."

The Giants' Ryan Vogelsong (10-2) struck out eight while allowing two runs and four hits in 7 2-3 innings. Santiago Casilla retired Mike Stanton with two on to end the eighth, and Ramon Ramirez came on to retire Brett Hayes with two on and two out in the ninth for his second save in three chances.

In sunny, 91-degree weather, Vogelsong only became overheated when Burke Badenhop hit him with a pitch. Vogelsong raised the bat over his head with both hands and slammed it to the ground, and the catcher and plate umpire stepped between him and Badenhop.

"I don't think they were trying to hit me," Vogelsong said. "But any time you get hit, you're going to be mad, especially because I have no extra-base hits, and I haven't had a hit in about two months."

Both teams dismissed the notion there was residual bad blood from their previous meeting this season in May, when Giants catcher Buster Posey broke his leg in a collision that stirred controversy.

"Guys get carried away," McKeon said. "Vogel ... Volkswagen ... whatever his name is — he's lucky he didn't have to face Drysdale or Gibson or one of those guys. You would get a shave and a haircut real quick."

Stanton hit his 26th homer with two out in the first. After Greg Dobbs followed with a single, Vogelsong retired the next 17 batters before Dobbs singled with one out in the seventh.

Emilio Bonifacio hit a two-out RBI double in the eighth for the Marlins' other run.

Ross, playing in Miami this weekend for the first time since the Giants acquired him from Florida on a waiver claim last August, hit his ninth homer after Vogelsong walked, putting the Giants up 2-1. Schierholtz later hit his eighth homer, and Belt's first career two-homer game gave him four home runs this season.

NOTES: The Marlins recalled INF Ozzie Martinez and selected the contract of INF Jose Lopez from Triple-A New Orleans. ... Giants OF Carlos Beltran (strained right wrist) was out of the starting lineup for the sixth consecutive day but said he was feeling better. ... Casilla had orders not to swing when he batted for the first time in his career, and Jose Ceda walked him on four pitches. ... Marlins RHP Clay Hensley, scheduled to start Monday at Colorado, has a 4-1 record and 3.07 ERA in seven career starts against the Rockies. ... Giants LHP Madison Bumgarner, scheduled to start Monday at Atlanta, lasted only 2 2-3 innings and gave up four runs in a loss to the Braves on April 22. That is his only previous game against them.