Brandon Belt hit a three-run homer in the eighth inning, and the San Francisco Giants rallied against Arizona's bullpen for the third straight game, beating the Diamondbacks 9-6 on Wednesday night to complete a three-game sweep.