SAN FRANCISCO -- Ivan Nova had little problem extending Pittsburgh's streak of strong road starts.
Three home runs, including a milestone shot by David Freese, gave the right-hander all the cushion he needed.
Nova allowed two runs in six innings, Freese hit his 100th career home run, and the Pirates beat the San Francisco Giants 10-5 on Thursday night.
"Guys got balls over the plate and when we had them we nailed them," Pirates manager Clint Hurdle said "And Nova was spot on through four. Some small misfires in the fifth and then a nice shutdown."
Nova (7-6) lost to the Giants in May but was sharper this time. He retired the first 11 batters and didn't allow a hit until Austin Slater's leadoff single in the fifth. Nova yielded three hits and had three strikeouts.
Pirates starting pitchers have a 2.20 ERA over their last 10 road starts.
"We have good starting pitching," Nova said. "We have had some guys pitch the way that they've been pitching and you just want to follow that. You want to pitch a good game too."
Adam Frazier added three singles and two RBI, his fourth multi-hit game in the last six.
The Pirates have won three straight overall and improved to 8-2 in their last 10 at AT&T Park.
Freese singled and scored on Diaz's homer in the second then broke the game open with his milestone home run, a three-run blast off Mark Melancon in the seventh.
"I didn't think it would be here, that's for sure," Freese said. "I think I got one here before, maybe just one. For a guy that pounds a ball into the ground, not too bad."
Diaz and Bell homered off starter Andrew Suarez (4-8) in the second.
Former Pittsburgh star Andrew Cutchen went hitless in four at-bats but made a pair of sparkling defensive plays against his former team.
A five-time All-Star and a Gold Glove winner for the Pirates as a center fielder in 2012, McCutchen threw out Frazier at second after he lined a ball into right leading off the game. In the sixth, McCutchen raced into the alley in right-center and made a diving grab to rob Diaz of extra bases.
Pittsburgh scored five unearned runs in the seventh after back-to-back errors by second baseman Panik and third baseman Evan Longoria.
"You give up five in the seventh, that's a pretty good punch there," Giants manager Bruce Bochy said. "That's where it got away from us."
LONG TIME COMING
Sadler allowed three unearned runs in his first appearance in the majors since April 12, 2015. The right-hander underwent Tommy John surgery in 2015 and was recalled from the minors on Sunday.
"This has got to be a very special evening for him, the fight, the perseverance and the resiliency to stay in the hunt and get back back and contribute in a major league game," Hurdle said. "His stuff was clean."
The Giants will retire the jersey of home run king Barry Bonds during a pregame ceremony Saturday. Bonds will be only the 10th player in franchise history to have his number retired.
ANOTHER BARRY'S BACK
Former San Francisco pitcher Barry Zito threw out the ceremonial first pitch before the game. Zito won 63 games for the Giants from 2007-13.
Giants: RHP Jeff Samardzija (shoulder inflammation) threw 40 pitches in a bullpen session and will face hitters next week. ... 1B Brandon Belt (hyperextended right knee) ran the bases and took batting practice. ... Catcher Nick Hundley is being evaluated for a concussion.
Giants LHP Derek Holland (5-8, 3.88 ERA) makes his second start against Pittsburgh this season on Friday night. Holland pitched 6 1/3 scoreless innings to beat the Pirates on May 13. RHP Clay Holmes (1-1, 3.65) will be called up from Triple-A Indianapolis and will start for Pittsburgh. Hurdle indicated the move was made to give the rest of the rotation an extra day of rest.
Fantasy baseball forecaster: Team hitting ratings
Stay ahead of the game and optimize your fantasy baseball hitters with our forecaster, which provides a rolling 10-day outlook of every team's hitting matchups as well as the potential for stolen bases.
Fantasy baseball forecaster: Pitcher projections for the next 10 days
Keep up to date on who is pitching -- and how well they're expected to do -- with our forecaster, which provides a rolling 10-day outlook of every team's probable starting pitchers with game score projections.
Willie Mays makes 'The Catch' in 1954 World Series
On Sept. 29, 1954, Willie Mays made the famous over-the-shoulder catch for the New York Giants in Game 1 of the 1954 World Series against Cleveland.
The science behind Willie Mays' iconic catch
Sport Science examines Willie Mays' incredible over-the-shoulder catch from the 1954 World Series.
Fantasy baseball daily notes: Pitcher and hitter rankings for Thursday
Prepare your fantasy baseball lineups confidently with our daily preview, including pitcher projections, hitter matchup ratings and more.
Appreciating Willie Mays' illustrious MLB career on his 90th birthday
In honor of Willie Mays' 90th birthday, several notable MLB names look back at his incredible career spanning 22 years.