MIAMI — Edward Cabrera pitched 5 2/3 scoreless innings, Javier Sanoja had an RBI single, and the Miami Marlins beat the San Francisco Giants 1-0 on Saturday.
Giants starter Robbie Ray retired the last 15 batters he faced in seven innings. Ray (7-1), trying to become the first eight-game winner this season, scattered two hits, walked three and struck out nine.
Cabrera (2-1) gave up six hits, walked three and struck out five as the Marlins were limited to three hits by Giants pitchers for the second straight game.
Sanoja had his run-scoring hit in the second, and that proved sufficient for Cabrera and three relievers. Ray issued consecutive walks to Dane Myers and Nick Fortes before Sanoja's opposite field line drive to right scored Myers.
Myers also made an outstanding leaping catch to end a Giants threat in the seventh. With Heliot Ramos at first and two outs, Myers tracked down a drive by Jung Hoo Lee and caught it while colliding with the wall in center.
Miami had another defensive gem to end the fourth when left fielder Heriberto Hernández robbed Tyler Fitzgerald of an extra base hit with a leaping catch at the wall.
Ronny Henriquez and Anthony Bender followed Cabrera and got the next seven outs. Calvin Faucher closed for his fourth save.
The Giants stranded 11 runners. It was their 13th consecutive game of scoring four or fewer runs.