HOUSTON (AP) -Carlos Zambrano dominated Houston again and Phil Nevin homered and drove in all three runs to lead the Chicago Cubs over the Astros 3-0 Monday night.
Astros starter Roy Oswalt was hit in the right wrist by Ronny Cedeno's line drive in the seventh. Oswalt retired two batters to finish the inning, then left the game and was listed as day-to-day.
Zambrano (13-5) allowed four hits and struck out five in eight innings to improve to 6-1 at Minute Maid Park.
Zambrano has beaten the Astros three times this season, including a one-hit shutout in Houston on June 5.
This time, Zambrano spent most of the night pitching out of trouble. His 121-pitch outing also included seven walks, a wild pitch and a hit batter. But the flustered Astros, with an NL-worst .258 batting average, stranded nine runners and dropped their third straight game.
Ryan Dempster pitched a scoreless ninth for his 12th consecutive save and 24th in his 29th opportunity.
Zambrano didn't retire the Astros in order until the seventh, but still outdueled Oswalt (9-8), who'd won three of his last four decisions.
Oswalt struck out four, but allowed seven hits, including Nevin's homer in the fourth.
The Astros threatened for the first time in the third inning.
Willy Taveras beat out a bunt with one out, extending his career-best hitting streak to 17 games. He went to second on a wild pitch and reached third when Craig Biggio grounded out.
Zambrano walked Lance Berkman, then hit Aubrey Huff with a fastball in the middle of his back to load the bases. But Zambrano escaped by striking out Morgan Ensberg.
In the fourth, Luke Scott doubled to right-center and Brad Ausmus drew a one-out walk. Oswalt bunted them ahead, but Taveras grounded out.
Scott, batting .429 since he was called up from Triple-A Round Rock on July 14, led off the sixth with another double. Zambrano walked Adam Everett, but Ausmus grounded into a double play for the second time and Oswalt grounded out on Zambrano's 98th pitch.
Nevin gave Zambrano all the support he needed in the fourth, hitting a 2-0 pitch off the brick facade in left center after Aramis Ramirez singled. It was Nevin's 19th homer of the season.
Cedeno led off the seventh with a line drive that ricocheted off Oswalt's right hand to Everett, Houston's shortstop, who got the out. Ausmus and manager Phil Garner walked out to check on Oswalt, but he stayed in the game and promptly struck out Zambrano.
Oswalt left after finishing the inning and Nevin added an RBI single in the eighth off Astros reliever Chad Qualls. The Astros' bullpen came into the game with a 3.11 ERA since the All-Star break, second only to the New York Mets in the NL.
Notes: The Cubs have homered in nine consecutive games, a season high. ... Taveras' hit streak is the longest by an Astro since Jeff Kent's franchise record 25-game streak in May-June 2004. Taveras has the longest active hit streak in the majors. ... Biggio's first-inning walk was the major league-leading 500th allowed by the Cubs.