SAN FRANCISCO -- Matt Cain pitched six strong innings and helped himself with the bat, Buster Posey added a two-run homer and the San Francisco Giants beat the Chicago Cubs 5-3 on Saturday.