Recap: Giants 3, Marlins 2

Giants 3, Marlins 2: Melky Cabrera had four hits, including a solo home run in the first inning, and the Giants salvaged a split of the four-game series against the host Marlins.

Matt Cain (5-2) gave up two runs (one earned) before leaving with two outs and two runners on in the seventh inning. Sergio Romo followed Cain and struck out Omar Infante to end the Marlins' threat.

Santiago Casilla retired Justin Ruggiano with one on and two outs in the eighth and worked a scoreless ninth inning for his 12th save as the Giants wrapped up a 4-3 road trip.

The Marlins remained one victory away from tying the franchise record for most wins in a month after struggling to keep Cabrera off the basepaths.

Cabrera, who had two stolen bases and scored all three of the Giants' runs, leads the majors with 73 hits. Cabrera's four hits matched his career high.

Ricky Nolasco (5-3) allowed three runs over seven innings for the Marlins, who cut the Giants' lead to 3-2 in the seventh on Jose Reyes' RBI single.

Miami, which was looking to move a season-high six games over .500, went 2-for-10 with runners in scoring position and left eight runners on base.

GAME NOTEBOOK: Reyes extended his hitting streak to eight games. ...Giants 2B Freddy Sanchez has shut down his rehab after requiring an epidural injection in his back. ...Cain has lasted at least six innings in each of his 10 starts. ... Miami is 18-8 in the month of May. ...Nolasco was looking to win his fifth straight start over the Giants. ...Giants OF Gregor Blanco went hitless after going 8-for-14 in the first three games of the series.