Evan Longoria hit two doubles, Brandon Belt reached base four times and the San Francisco Giants snapped a three-game losing streak by beating the Arizona Diamondbacks 5-2 on Saturday night. San Francisco starter Trevor Cahill retired his first eight batters but left the game abruptly in the fourth inning with "left hip discomfort." The move came a few pitches after he gave up a two-run homer to Christian Walker that pulled the D-backs within 4-2.