SAN FRANCISCO -- Pinch-hitter Bengie Molina hit a three-run home run in the eighth inning and the San Francisco Giants rallied for a 4-3 victory over the Arizona Diamondbacks on Wednesday night.
Juan Uribe also homered for the Giants, who won their second straight.
Ryan Roberts homered for the Diamondbacks, who lost for the ninth time in 10 games. Gerardo Parra had two hits and drive in a run.
Arizona starter Doug Davis took a four-hitter into the eighth inning. He recorded the first two outs before he walked Edgar Renteria and gave up a single to Randy Winn. Reliever Chad Qualls (2-2) came in and gave up Molina's third career pinch-hit homer.
Justin Miller (3-3) pitched the eight for the win. Brandon Medders earned his first save.
Davis gave up a pair of hits in the third and then retired 14 of the next 16 hitters before Uribe's homer. He walked four and struck out five.
Giants' starter Jonathan Sanchez went seven innings, allowing three runs and six hits. He walked two and struck out nine.
Roberts led off the game with a home run for the fifth time in his career. He hit an 0-2 pitch into the left field bleachers to give the Diamondbacks an early edge.
Sanchez retired 13 of 14 hitters from the second inning until Justin Upton, who was activated from the disabled list before the game, drew a one-out walk in the sixth.
Sanchez struck out Miguel Montero for the second out but walked Rusty Ryal ahead of Parra's second hit of the game. Alex Romero followed with another RBI single.
Parra entered the game with just two hits in his last 23 at-bats.
All seven of Uribe's hits against the Diamondbacks this year have been for extra bases.