Ricky Nolasco allowed one run in eight innings and the Florida Marlins snapped a seven-game losing streak Friday night by beating the San Francisco Giants 2-1.
Florida improved to 4-0 this season against the defending World Series champions.
The erratic Marlins had been 0-7 on their homestand, but Nolasco (9-8) outpitched All-Star Matt Cain. Nolasco struck out four, walked one and gave up six hits.
Leo Nunez pitched around a leadoff single in the ninth to earn his 32nd save in 36 chances. Center fielder Dewayne Wise - a ninth-inning defensive replacement - made a lunging catch of Cody Ross' fly at the warning track for the second out.
Two of the first three Florida batters scored against Cain (9-9). He then settled down to pitch six innings, allowing no more runs, but lost his third start in a row.