But they managed to split the series with a wild 9-7 victory Thursday night when Mark Sweeney drew a bases loaded walk to force in the go-ahead run and Pedro Feliz added a two-run double in the ninth inning.
The Giants remain atop the NL West. Don't ask how.
"This is the kind of win, you take it," manager Felipe Alou said. "You're really glad to win it, but you know some things need to be fixed."
The Giants might want to start with their bullpen, which blew a 6-0 lead and cost starter Jamey Wright his third victory.
It was the second time in four days that the Giants blew a big lead and then won in the ninth inning.
In the series opener Monday night, the Diamondbacks spotted San Francisco a 7-0 lead after three innings. Arizona rallied to take a 9-7 lead but the Giants came back to win 10-9.
On Thursday night, San Francisco led 6-0 in the fourth inning. But Arizona tied it at 6-6 when catcher Johnny Estrada hit a three-run home run in the eighth inning off Tim Worrell (2-0), who blew his first save in seven chances.
"To win those games is huge," said Wright, who allowed two runs on four hits and five walks in 6 2/3 innings. "I can't describe how important that is. We tied the series and we have moment going into Coors" Field, where the Giants open a three-game series against second-place Colorado Friday night.
Coors Field could be an ominous destination for a staff that was battered by the hot-hitting Diamondbacks.
"I don't know how many homers they hit," Alou said. "Ten, eight, 12?"
The total was seven. Three of them tied or won games.
It was a crushing loss for the Diamondbacks, who went 4-6 on their 10-game homestand.
"It wears on you, man," Estrada said. "This game is tougher here because early on it looked like we were going to take a beating, and we battled back, scratched and clawed our way back into the game and eventually tied it up."
Barry Bonds, who did not start for the second straight day, was intentionally walked as a pinch-hitter in the ninth to load the bases before Brandon Medders (0-1) got Ray Durham to pop out to third. Sweeney then walked to score Steve Finley, a former Diamondback who beat his team with an RBI sacrifice fly Monday. Feliz followed with a double off reliever Luis Vizcaino to make 9-6.
"Pedro's hit at the end gave us a little breath of fresh air," Sweeney said.
San Francisco jumped ahead 5-0 in the first inning against Claudio Vargas. Randy Winn led off the game with a single, Omar Vizquel bunted for a hit and Finley walked to load the bases with no outs.
Moises Alou's single drove in one run. After Todd Greene struck out, Durham tripled to center field to make it 4-0. Lance Niekro followed with an RBI single.
Vargas allowed six runs on eight hits and four walks in 2 2-3 innings. In his last two starts, Vargas has given up 11 runs and 17 hits in six innings.
Arizona made it 6-1 in the fourth on Luis Gonzalez' fifth home run, a shot into the pool area beyond the right-center field fence. Arizona added another run in the seventh when Orlando Hudson, who had led off with a walk, scored on a wild pitch by reliever Jeff Fassero.
The Giants led 6-2 in the eighth when Giant reliever Steve Kline walked Tracy, who took second on defensive interference and scored on a single by Gonzalez. The rally appeared to die when Conor Jackson grounded into a double play, but Kline walked Shawn Green.
Alou brought in Worrell, who had converted all six save opportunities. Worrell gave up a bunt single to Andy Green and then yielded a towering 408-foot homer to right field to Estrada to tie the game at 6-6.
Chad Tracy added a solo homer in the ninth off Worrell for the final score.
Despite outscoring the Giants 33-26 in the series, the Diamondbacks had a bad feeling as they headed for Los Angeles, where they'll open a nine-game road trip against NL West rivals Los Angeles, San Diego and San Francisco. "We could have easily swept this series and we left with a split, so it's kind of frustrating," Estrada said.
San Francisco left fielder Winn singled in the first inning to extend his hitting streak to a career-best 12 games. ... Arizona shortstop and leadoff man Craig Counsell was scratched from the lineup shortly before Thursday night's game against San Francisco. The club said Counsell had experienced tightness in his right hamstring. He will be re-evaluated Friday. ... Arizona's Jason Grimsley pitched 4 1/3 scoreless innings, the longest relief stint of his career. ... Arizona outfielder Jeff DaVanon has hit safely in all nine of his starts this season.