SAN FRANCISCO -- Catcher Jarrod Saltalamacchia scored Miami's first run and drove in its third, right fielder Giancarlo Stanton belted a home run and a triple, and right-hander Tom Koehler shut out San Francisco on four hits over seven innings, delivering the Marlins a 5-0 victory Saturday night.
The win was the Marlins' second of the four-game set, assuring Miami's streak of not having lost a series in San Francisco since 2009 will continue regardless of the result of Sunday's series finale.
Koehler, who entered the game with an 0-3 record and 4.15 ERA in four road starts, shut down a Giants team that had recorded 10 or more hits in three consecutive games.
Koehler (4-3) never allowed more than one hit in an inning, mixing in seven strikeouts, including inning-enders on two of the three occasions in which the Giants got runners into scoring position.
Allowing no runs in at least seven innings for the fourth time this season, but first time on the road, Koehler walked two while lowering his ERA to 2.25.
Right-hander A.J. Ramos pitched a scoreless eighth in relief of Koehler before closer Steve Cishek had to be called upon in the bottom of the ninth to bail out struggling Kevin Slowey. Cishek struck out left fielder Tyler Colvin with the bases loaded to complete the Marlins' seventh shutout of the season. Cishek was credited with his ninth save.
The Marlins supported their pitchers with ample offense, turning nine hits into five runs against three Giants pitchers.
Saltalamacchia's productive night began with his eye and his legs. He worked Giants starter Tim Lincecum for a two-out walk in the second inning, and two batters later raced home on an RBI single to right field by shortstop Adeiny Hechavarria.
The strong throw to the plate by Giants right fielder Hunter Pence had Saltalamacchia beaten by at least a step, but the veteran catcher athletically lunged to his right to avoid the tag by Giants catcher Hector Sanchez.
Saltalamacchia legged out an infield hit in his next at-bat, then capped a two-run Marlins sixth with a sacrifice fly.
Third baseman Casey McGehee got the Miami sixth rolling with a double. First baseman Garrett Jones followed with a liner to left-center that barely eluded diving Giants center fielder Angel Pagan, a triple that easily scored McGehee.
Saltalamacchia's fly ball to medium-deep left field then made it 3-0.
Lincecum (3-3) was pulled after the sixth, having thrown 114 pitches. He gave up three runs on seven hits and three walks, striking out six.
Stanton's home run, his team-leading 12th, came in the seventh inning vs. Giants left-hander David Huff. The shot to center field increased Miami's lead to 4-0.
Stanton also had one of the seven hits off Lincecum, a third-inning triple.
The Marlins scored another run in the ninth following a dropped fly ball by Pence in right field. The unearned run scored on pinch-hitter Jeff Baker's RBI single.
Sanchez had three of the Giants' six hits, including a ninth-inning double. Pence added a third-inning triple.
The Giants were shut out for just the third time this season.
Koehler benefited from a call reversal after what appeared to be a double off the right-field wall by Giants second baseman Brandon Hicks in the second inning.
The hit advanced Sanchez to third base with one out, but the Marlins appealed, saying Hicks had not touched first base on his way to second. Home-plate umpire Gary Cederstrom initially called Hicks safe, but Miami got the out after video review.
Giants shortstop Brandon Crawford then flied out to center field to end the inning, a ball easily deep enough to have scored Sanchez had there not been two outs.
NOTES: Upon further review, Marlins LF Christian Yelich became the second-youngest player in franchise history to lead off a game with a home run in Friday's 7-5 win over the Giants. SS Hanley Ramirez (22 years, 116 days) was 46 day younger than Yelich when he led off the Marlins' game on April 18, 2006, with a homer. ... Giants RHP Tim Hudson is scheduled for a bullpen session on Sunday that will determine whether he is healthy enough to make his next start on Thursday at Colorado. Hudson was passed over in the rotation on Friday night because of a strained left hip. ... The Marlins outrighted RHP Henry Rodriguez to Triple-A New Orleans on Saturday after he had cleared waivers. Rodriguez was designated for assignment on Wednesday after giving up two hits and five walks in 1 2/3 innings of two relief appearance this season.