SAN FRANCISCO -- Chris Stewart pulled the souvenir out of his locker, moving it around in his hand for all to see: a marked-up ball that took 10 years to earn.
"It's the best looking baseball I've ever seen," he said.
Stewart sent the fastball from James McDonald over the left-field wall in the fifth, sprinting around the bases and getting mobbed by teammates in the dugout after his first home run in 140 major league at-bats. He gave the fan who caught the ball in the bleachers an autographed bat, and he'll soon be placing his newest possession on his mantle.
After so many almost-homers, the 29-year-old catcher finally had his long ball.
"I lifted weights this morning," he said, chuckling. "That extra curl got that ball out for me."
Madison Bumgarner (7-11) struck out 10 and walked one in seven innings. The lefty was one strikeout short of his career high, which came against Cleveland on June 26.
Huff also had an RBI double to help chase McDonald (7-6) after six innings. McDonald allowed three runs and four hits for the Pirates, who had snapped a 10-game losing streak a night earlier.
"I missed my spot in the major leagues, that's what I did, and they put a good swing on the ball," McDonald said. "I tip my hat to them. I've given up home runs my whole career."
With Bumgarner having another superb outing, San Francisco finally gave him a rare source of power.
Huff followed Stewart's blast with a home run over the brick wall in right in the sixth to go ahead 3-0. The homer was his 11th of the season and a big boost for a Giants team playing without injured slugger Carlos Beltran, nursing a strained right hand for the second straight night.
San Francisco's 28 home runs at AT&T Park are the lowest for any team in the majors at home. And perhaps none this season is more special than Stewart's shot.
"Things like that do pull a club together," Giants manager Bruce Bochy said.
Nate Schierholtz, Cody Ross and Orlando Cabrera also drove in a run each to highlight a two-run eighth for the Giants, and they could've had far more. The Giants were 2 for 11 with runners in scoring position.
The Pirates had few scoring chances and saw their best one snatched away.
Ronny Cedeno had a one-out double in the fifth and moved to third with two outs on McDonald's ground out. Then Giants third baseman Pablo Sandoval made a diving stop to rob Andrew McCutchen of extra bases and save a run.
That's sort of how things have gone lately for Pittsburgh, which sat in first place in the NL Central a little more than two weeks ago. Suddenly, they can't string consecutive wins together.
"You ask me how we beat left-handers? We get hits with runners in scoring position," Pirates manager Clint Hurdle said. "We didn't do that tonight."
Giants OF Pat Burrell was scheduled to fly to North Carolina on Wednesday to seek a second opinion on his strained right foot. ... Giants 3B coach Tim Flannery sang the national anthem along with "Further" members Phil Lesh and Bob Weir. ... Pirates RHP Jeff Karstens (8-6, 3.05 ERA) will try to rebound from his last start when he takes the mound Thursday opposite Giants LHP Jonathan Sanchez (4-6, 4.10). Karstens allowed nine runs in 3 1/3 innings last week against San Diego. It was the first time he allowed more than three earned runs in a start since April 17.
Antonio Gonzalez can be reached at: http://www.twitter.com/agonzalezAP