PHOENIX -- Buster Posey hit a two-run homer off new Arizona closer Addison Reed in the ninth inning and the Giants rallied from four runs down to beat the Diamondbacks 9-8 on Monday night.
It was the season opener for San Francisco and the first true home game for the Diamondbacks, who started the season with two losses as the home team against the Los Angeles Dodgers in Australia.
Miguel Montero, who had three hits and reached base five times, homered to lead off the Arizona ninth and make it a one-run game.
Brandon Belt had three hits, including a solo home run, and singled ahead of Posey's homer.
Arizona scored four unearned runs off starter Madison Bumgarner in the fourth and led 7-3 after six. San Francisco got four runs with two outs in the seventh, with reliever Brad Ziegler walking in the tying run.
Jean Machi (1-0) pitched 1 2-3 innings of relief to get the victory. Reed (0-1), acquired from the Chicago White Sox in the offseason, got the loss. Sergio Romo, who gave up the home run to Montero, earned the save.
After Montero's shot to left, Chris Owings reached on a bunt single and was sacrificed to second by Gerardo Parra. Pinch-hitter Eric Chavez struck out and A.J. Pollock, who has started the season 0 for 12, popped out to end it. Pollock struck out four times in the game.
Mark Trumbo had three singles and drove in two runs in his home debut as a Diamondback.
With two outs in the seventh, pinch-hitter Ehire Adrianza doubled in a run, ending Arizona starter Brandon McCarthy's night. Oliver Perez came in and gave up three hits without an out, including an RBI double by Angel Pagan's RBI double and Pablo Sandoval's run-scoring single. Ziegler relieved Perez and gave up a single to Posey to load the bases, then walked Hunter Pence for the tying run.
Arizona's fourth inning opened with a fielding error by second baseman Joaquin Arias on Trumbo's groundball. Montero hit a bouncer to the third baseman Sandoval, who bobbled it just long enough for Trumbo to make it to second.
Owings singled to load the bases, then Parra singled in two runs. After two outs, Aaron Hill doubled to the right center gap to bring in two more to make it 4-1.
Giants manager Bruce Bochy lifted Bumgarner for pinch-hitter Gregor Blanco with runners at second and third and one out in the fifth. Blanco got a run home with a ground out and Pagan flew out to end the inning.
The Diamondbacks greeted reliever Yusmeiro Petit with four consecutive hits in the fifth, including a leadoff double by Martin Prado, followed by Trumbo's RBI single. Parra got his third RBI of the night with a ground out and Arizona led 6-2.
NOTES: Arizona's Goldschmidt extended his hitting streak to 22 games, dating to last season. ... McCarthy struck out the side in the first. He did that once last season, April 16 against the Yankees. ... Parra had four RBIs against left-handed pitchers this season. He got two off the lefty Bumgarner. ... The Giants opened on the road for the fifth straight year. ... On Tuesday night, Trevor Cahill (0-1) pitches for Arizona, Matt Cain goes for the San Francisco.