Matt Cain gave up four runs in 5.1 innings, but hit a three-run homer in the second inning to help the Giants beat the Reds Tuesday night.