In the Chicago ninth, Bobby Scales drew a leadoff walk against Hawkins (1-1) and advanced on Aaron Miles' sacrifice. Soriano, who homered off Hawkins on April 7 at Houston, lined an 0-2 pitch to right for the game-winner.
"When he goes to right field, good things will happen," Piniella said of Soriano. "I've told him that many times."
"I wanted to try to hit the ball to the gap in right field," Soriano said. "That pitch was away, and I put the ball in play."
Third-base coach Mike Quade waved Scales home, and the 31-year-old rookie obliged.
"Soriano's not going to stop at first," Scales said. "He's going to keep running in case I get thrown out at the plate. I probably should've taken off sooner once I saw it was hit and I saw it wasn't just a regular popup. Hunter [Pence] was playing back and over a little bit for the way Sori hits."
Pence did throw home, but it was high and Scales was safe.
"If it was just down a little bit, he would've been [out] by a long way," Hawkins said.
Sean Marshall was supposed to start on Saturday, but he was delegated to the bullpen instead because the Astros hit left-handers well. He ended up with the win in relief, entering with the bases loaded and two outs in the ninth. It wasn't easy. He had to face Lance Berkman, a career .300-plus hitter with the bases loaded.
"Three pitches, one hit -- I guess I kind of stole that one," Marshall said. "They showed what they can do in the ninth against two of our best guys. That's what a good team does -- is pick up guys who are down. That's a fun one."
Rookie Randy Wells, making his second big league start, was in line for the win after he scattered four hits and walked three over six innings. He has not given up a run in 16 1/3 innings in the Majors, dating back to last season, when he appeared in four games -- one with the Blue Jays -- all in relief.
The right-hander escaped some self-created jams. The Astros had four baserunners in the second inning and none scored. With one on and none out, Miguel Tejada hit into a double play. Houston then loaded the bases, but Oswalt hit a comebacker for the final out.
"It's like the start in Milwaukee [May 8]," Wells said. "I got myself in some jams and made some bad pitches and didn't execute. It's more work for me."
"[Wells] did a good job," Berkman said. "I was pretty impressed with the way he throws the ball. He doesn't really throw the ball over the plate. He throws the ball either right on the corner or just off and tries to make you chase it."
The Cubs took a 3-0 lead in a well-played sixth. Soriano blooped a single to shallow right between three Astros players to lead off the frame and advanced on Ryan Theriot's sacrifice. Soriano reached third when Kosuke Fukudome flew out to center and scored on Derrek Lee's single to left. Lee had fallen behind in the at-bat, 0-2, and worked the count full before he delivered his hit and his first RBI since May 3. Hoffpauir, starting in right field for Milton Bradley, who was serving a one-game suspension, followed with his fourth home run off a 2-1 pitch from Oswalt.
Geovany Soto added an RBI single in the eighth. In the Houston ninth, Berkman and Carlos Lee hit back-to-back homers off Gregg. Tejada then singled and Pence followed with a single to center, which deflected off Gregg's right hand.
Gregg then hit Geoff Blum to load the bases and was lifted for Aaron Heilman, who served up a two-run single to Ivan Rodriguez which tied the game at 4.
"You certainly don't expect your closer to get hit that hard," Piniella said. "I talked to our catcher, Geovany, and he said [Gregg] was up and down the middle with about everything. He needed the work, we needed to pitch him, and he'll be better tomorrow."
Wells' locker is next to Gregg's. The two talked. The rookie had no hard feelings.
"Stuff like that happens," Wells said. "I've been playing a long time in the Minor Leagues. Stuff like that has happened to me. You don't want to do it, you don't try to do it, it's just the way the game goes sometimes."