SAN FRANCISCO -- The Houston Astros already had a rough day after several players were forced to walk to AT&T Park because taxis declined to risk the traffic brought on by the downtown Bay to Breakers race.
Barry Zito only added to their misery.
Zito rebounded nicely from his only loss of the season, scattering six hits over seven innings while striking out four and walking only one, and San Francisco got another big day from reserve outfielder Andres Torres in a 4-3 win over Houston on Sunday.
Torres homered, doubled and scored twice, Aaron Rowand also homered and the Giants swept a three-game series from the Astros for the second time this season.
"These are the types of games you need to win if you're a good ballclub," San Francisco manager Bruce Bochy said. "We're finding a way to do it now, although they have been scary."
The Giants had a little hometown help for this win.
Several Houston players walked to AT&T Park when taxis in San Francisco declined because of the Bay to Breakers foot race that was also taking place. Those who did manage to catch a ride spent almost an hour getting to the ballpark from the Astros team hotel, which was less than two miles from the stadium.
Houston manager Brad Mills finally arrived 30 minutes after persuading a taxi driver to take a chance in the traffic.
"I had to tell him how to get here, but we wound up getting here," Mills said. "I've never had that before. It was nuts."
The Giants won the first game of the series handily but had to hold off ninth-inning threats in the last two, both of which were decided by one run. Each time closer Brian Wilson put the tying and go-ahead runs on base before working out of the jams.
Wilson and Kaz Matsui waged a 15-pitch battle with two outs in the ninth on Saturday, then went at it again Sunday before Matsui struck out to end the game.
Zito (6-1) was the first left-handed starter Houston has faced since April 23 and pitched out of jams much of the afternoon, most critically in the seventh when he got pitcher Brett Myers to ground out with the tying run on second base. Zito retired 15 of 16 batters during one stretch, the lone blemish being Carlos Lee's solo home run leading off the fourth.
Lee's home run was the first allowed by Zito this season.
"This was a battle from the beginning," Zito said. "I just had to keep attacking the zone and let them get themselves out. We played great defense today and that picked me up big."
Jeremy Affeldt pitched the eighth and Wilson worked the ninth for his ninth save in 10 tries.
Houston, which scored only three runs total in the first two games of the series, broke out of its collective slump but the Astros still came up on the short end and dropped to 1-20 this season when scoring three runs or less.
Lee had two hits and Hunter Pence had an RBI double off Zito in the first but that was about the extent of Houston's offense.
Myers (2-3) gave up five hits and matched his season high of seven strikeouts over eight innings.
After Houston got a run in the top of the first, San Francisco answered quickly on Torres' first home run of the season.
The speedy utility outfielder, making his seventh straight start in place of injured left fielder Mark DeRosa, hit a fastball that sailed over the wall in right field and bounced into McCovey Cove to drive in Rowand, who had walked leading off the inning.
Lee, who was ejected for arguing balls and strikes on Saturday, tied the game with a solo home run in the fourth but Myers couldn't hang on.
The Giants planned to reevaluate DeRosa (hand) after the game and may place the veteran utility player on the 15-day disabled list, though Bochy said he is encouraged by DeRosa's progress. DeRosa also accompanied the team on their trip to San Diego ... Houston CF Michael Bourn, who had three stolen bases and scored the team's only run on Saturday, was given the day off by Mills. ... Zito had not allowed a home run in 56 2/3 innings before Lee's blast in the fourth. ... Cash's double in the seventh was his first hit of the season. He was making a rare start in place of Astros catcher Humberto Quintero.
- Home Plate Umpire - Mike Dimuro
- First Base Umpire - Tim Welke
- Second Base Umpire - Jim Reynolds
- Third Base Umpire - Bill Welke