Buster Posey hit a two-run homer off new Arizona closer Addison Reed in the ninth inning, and the San Francisco Giants rallied from four runs down to beat the Diamondbacks 9-8 on Monday night.