SAN FRANCISCO -- If the commemorative lineup card and scorecard and game ball that were sitting inside Henry Sosa's locker weren't enough of an indicator of just how special Thursday's game was for the 26-year-old rookie, the wide smile surely gave it away.Sosa turned in one of the Astros' best pitching performances of the season, holding the Giants to one run in six innings while pitching on three days' rest to pick up his first career victory in Houston's 3-1 win in the series opener at AT&T Park. With Sosa working quickly and keeping his defense on its toes, the Astros played one of their better games of the season to snap a nine-game road losing streak and improve to 3-1 this season against the defending World Series champions. "Sometimes you fare better and get a little luck against teams," said Astros center fielder Jordan Schafer, who scored all three runs. "We played good baseball. Our pitching kept us in the game, and we were able to scratch a couple of runs across early and the pitching did the rest from there." Sosa (1-2) collected his first Major League win in only his fourth big league start. What made the night even more special is the victory came against the Giants, who signed him out of the Dominican Republic in 2004 and traded him to the Astros in the Jeff Keppinger deal last month. "This is special because it's my first win," Sosa said. "I feel I'm doing my job with this team and I'm trying to do the best I can to do the best for me and family." The Giants put the leadoff hitter on base in all but one inning against Sosa, but he routinely came up with big pitches as his defense played a terrific game behind him. "The way he went after hitters was very impressive," Astros manager Brad Mills said. "The first couple of times out, maybe he was just trying to get his feet wet and kind of feeling for it a little bit, but tonight he wasn't feeling for it. We saw the arm everybody had seen at Double-A and had heard about, and he went after the guys with all of his pitches. It was very impressive." Giants right fielder Carlos Beltran was impressed with Sosa, whose mid-90s velocity was consistently better than his first three starts. "I didn't feel really good at the plate against him," said Beltran, who was 0-for-3 before singling against closer Mark Melancon in the ninth. "I wasn't picking up the ball really good out of his hand. I don't know about the other guys." San Francisco didn't do any better when Sosa left. Wilton Lopez followed Sosa with two scoreless innings and was the beneficiary of a great defensive play to end the eighth when third baseman Jimmy Paredes made a diving backhanded stop and threw out Keppinger to end the inning. Melancon nailed down his 14th save and watched first baseman Carlos Lee and shortstop Clint Barmes combine for a nifty 3-6-3 double play, with Lee tagging on Beltran between first and second. Astros catcher Carlos Corporan threw out two runners trying to steal. "I thought that was one of our better defensive games if the year," Mills said. Schafer, acquired from the Braves in the Michael Bourn deal last month, led the way offensively by going 2-for-4 with a solo homer in the seventh. The Astros ran wild on Giants starter Ryan Vogelsong and catcher Eli Whiteside, swiping a season-high four stolen bases, including two by right fielder Brian Bogusevic. Schafer led off the game with an infield single, stole second base and scored on a double by J.D. Martinez, who drove in Schafer again in the third with a sacrifice fly that put the Astros ahead, 2-0. Martinez went 2-for-3, improving to 7-for-16 (.438) against the Giants in four games this year. "RBIs are a credit to your teammates being on base," Martinez said. "You're not always going to go up there and hit home runs. They're getting on base for me and they're just helping me do my job, you know? They're doing their job, and I have to do my job." Vogelsong (10-4) lost to the Astros for the second start in a row, allowing six hits and three runs in 7 1/3 innings. Houston tagged him for five runs (two earned) in seven innings in a 6-0 win over the Giants on Friday. "I think it was pretty evident that I was struggling to make pitches," Vogelsong said. "I was trying to get the ball where I wanted it without rushing myself. A lot of that was my fault. I wasn't really giving Eli a chance to throw guys out. At the same time, I was just trying to make my pitches and hit spots. That was the main concern." The only Giants run came in the third, thanks to a costly balk call. With one out and a runner on second base, Sosa's balk allowed Whiteside to move to third. Orlando Cabrera followed with a ground ball to short that scored Whiteside, cutting the lead to 2-1. "The one thing about Henry is he works quick, and that really keeps guys on their toes," Mills said. "Sometimes he'll take maybe four pitches between innings when he goes back out there. He just doesn't take a lot of time between pitches and it keeps guys on their toes and they make plays behind him."