SAN FRANCISCO -- Andres Torres imagined a game-winning hit would one day happen for him in the major leagues after he spent more than a decade in the minors.
Torres singled with two outs in the 10th inning for his career-high fourth hit, leading the San Francisco Giants past Arizona 6-5 on Sunday and sending the Diamondbacks to their seventh straight loss.
"It's pretty exciting. I've been through a lot," Torres said. "For me, being here in the majors has been a lot of work. I try to always give 100 percent."
Torres hit a sharp liner to right off Carlos Rosa (0-1) to drive in Juan Uribe, who started the rally with a two-out single. Torres' teammates rushed out to celebrate -- and he just tried to protect himself from injury.
"They punched me and they hit me," he said, smiling.
Brian Wilson (1-0) pitched a 1-2-3 10th with two strikeouts for the win, the closer's third straight outing not allowing a baserunner.
Arizona's skid matches its worst of the season.
Torres is batting .370 since being moved into the leadoff spot May 23 at Oakland -- and the Giants are 5-2 in those games. He also scored twice.
"His play has been really a pleasure to watch," Giants manager Bruce Bochy said. "Defensively, offensively, he's really playing some great ball."
This finish should give San Francisco a nice boost heading into Monday's anticipated Memorial Day matchup with the Rockies at AT&T Park. It looks to be a dandy: Colorado ace and nine-game winner Ubaldo Jimenez vs. two-time reigning NL Cy Young Award winner Tim Lincecum.
"I'm looking forward to it and I'm sure America is, too," Wilson said.
Eli Whiteside added a single in the 10th in his lone at-bat, helping the Giants win their sixth in a row at home against Arizona after also sweeping the D-backs here from Sept. 29-Oct. 1.
Make it six hits and four RBIs in two games for Giants rookie sensation Buster Posey.
Posey doubled twice, singled and drove in a run a day after he was called up and had three hits in his season debut in a 12-1 win Saturday night. The fifth overall pick in the 2008 draft was hitting .349 for Triple-A Fresno before being promoted to the big leagues. He received a rousing ovation when he stepped in to hit in the first. There were chants of "Posey! Posey!" when he batted in the eighth and 10th.
Arizona finally produced after managing just three hits in 57 at-bats and getting outscored 17-1 in the first two games of the series. Manager A.J. Hinch benched struggling left fielder Conor Jackson and moved Justin Upton into the No. 2 hole. Upton had an RBI double in the ninth.
"We have to find a way to have that edge every single night," Upton said.
"These games are really tough to lose, especially for losing so many in a row," Kennedy said. "It looked like we were going to win."
Giants starter Todd Wellemeyer matched his career high of seven strikeouts. He allowed two runs and six hits in 6 2/3 innings.
Qualls blew his fourth save. ... All six of Huff's homers this year have been at home and leading off an inning. ... C Molina is 2 for 34 over his last 10 games. Whiteside replaced him in the 10th. ... Arizona's Jackson is in an 0-for-13 funk since his six-game hitting streak ended Wednesday at Colorado. ... CF Aaron Rowand and SS Uribe weren't in the starting lineup for San Francisco but Uribe entered in the eighth as a defensive replacement. Rohlinger earned a rare start at SS but was replaced by Uribe after straining his left hamstring rounding third before the close play at home. He heard a pop and likely will go on the DL on Monday. INF Matt Downs could be the callup. ... The Giants sold out for the sixth time in 2010, drawing 41,394. ... Giants LHP reliever Jeremy Affeldt made his first appearance in a week since injuring his left hamstring at Oakland. The hamstring tightened up again and his status was uncertain. He expected to know more Monday. ... Injured Giants LF Mark DeRosa (left wrist) will begin a rehab assignment Monday with Class-A San Jose.