SAN FRANCISCO -- Pinch hitter Marcell Ozuna flared a two-out, two-strike, two-run single to right field in the top of the eighth inning Friday night, allowing the Miami Marlins to rally for a 2-1 win over the San Francisco Giants.
The rookie's 50th hit since his major league debut April 30 sent the Marlins to their eighth consecutive victory at AT&T Park and rewarded a strong pitching outing by rookie right-hander Tom Koehler, who recorded his first major league win.
Despite losing starting pitcher Chad Gaudin to a right elbow contusion when hit by a Derek Dietrich line drive in the fifth inning, the Giants took a 1-0 shutout into the eighth inning.
Sandy Rosario, who had held the Marlins hitless for 2 1/3 innings after taking over for Gaudin, walked Miami's Justin Ruggiano to open the eighth and was pulled in favor of Jeremy Affeldt (1-3), who promptly hit Dietrich in the shoulder with his first pitch.
After Adeiny Hechavarria advanced both runners with a bunt, Affeldt got within one out of escaping the jam by striking out pinch hitter Jeff Mathis. However, Ozuna followed with a soft fly to right that fell just in front of Hunter Pence, sending Ruggiano and Dietrich home with the difference-making runs.
The Marlins were coming off a three-game series in Arizona in which neither team scored more than three runs in any game. Miami opened that series with a dramatic 3-2 win before losing the final two games.
Ozuna was hitting for Koehler (1-5), who was threatening the Marlins' all-time record for starts to begin a career without a win before bouncing back from his worst effort of the season with his best.
In an improbable pitchers' duel between Koehler, who was making his ninth career start, and San Francisco's Gaudin and Rosario, the clubs had combined for just three hits until Brandon Belt smacked a two-out double off Koehler in the last of the seventh of a 0-0 game.
Before the dust had settled on Belt's slide into second base, Joaquin Arias smacked a triple between Marlins center fielder Ruggiano and right fielder Giancarlo Stanton, allowing Belt to coast home with the first run of the night.
The triple extended Arias' hitting streak to a career-best 11 games.
Koehler struck out Nick Noonan to end the seventh and left for the pinch hitter in the top of the eighth. Coming off a game in which he yielded eight hits and nine runs in 4 2/3 innings against the St. Louis Cardinals, Koehler gave up just one run on three hits, walking three and striking out three.
Chad Qualls worked a 1-2-3 eighth before Steve Cishek recorded his 11th save by working a scoreless ninth during which his streak of having retired 17 consecutive batters ended on a one-out single by Buster Posey.
The Marlins out-hit the Giants 5-4.
The Giants, who took a two-game winning streak into the contest, began the night tied with Washington for the National League's best winning percentage in one-run games (.619). The loss dropped them to 13-9 in such games.
NOTES: As well as Koehler, the Marlins started three position players who had never faced the Giants before -- second baseman Dietrich, shortstop Hechavarria and catcher Rob Brantly. ... Gaudin, who struck out in his only plate appearance against Koehler, extended his string of at-bats without a hit to 33, tops in the National League. He's 0-for-10 this season. ... RHP Ramon Ramirez, who was designated for assignment by the Giants last week, cleared waivers Thursday and became a free agent. He had an 11.12 ERA in six games with San Francisco this season. ... Giants first-round pick Christian Arroyo, a shortstop from Hernando High in Brookville, Fla., who signed with the club earlier this week, visited AT&T Park for the first time Thursday. The 18-year-old will begin his professional career in the rookie-level Arizona League. ... LHP Barry Zito's 84-year-old father, Joe, died Thursday. Services aren't expected to be held until July, so the San Francisco left-hander's next start -- Saturday against the Marlins -- should not be affected.