HOUSTON -- Mark Prior needed only one more pitch to get out of a bases-loaded jam in the fifth inning. He'd already fired fastballs of 94 and 95 mph past Houston's Mike Lamb, and figured another might do the trick.
Not this time.
"I was one pitch away from getting out of it," Prior said. "I put us in a deficit we couldn't overcome. If I'd gotten us out of that jam, it would have been a different situation."
Lamb connected on an 0-2 pitch with two outs, and Adam Everett followed with a three-run shot later in the seven-run inning off Prior (3-1) as the Astros closed the series against their NL Central rivals with consecutive wins after losing six in a row.
Houston, which entered 29th in the majors in runs, needed the outburst because Oswalt started off shaky, then left in the sixth with a sprained right foot.
"Hopefully that means our offense is starting to pick up," said Astros first baseman Jeff Bagwell, who went 1-for-3 with a RBI. "If nothing else, it will bring some good feelings to some guys."
Oswalt (4-2) started fidgeting on his foot after allowing a single and double to start the sixth. Before pitching to Cubs center fielder Corey Patterson, Oswalt stepped off the mound and manager Phil Garner came out to check on him.
He was removed for reliever Russ Springer, with the Astros holding an 8-3 lead. Oswalt lasted five-plus innings, his shortest outing in six starts this season, and allowed three runs and 10 hits with two walks and a strikeout.
"It just kept getting worse and worse," said Oswalt, without even a hint of a limp in the clubhouse. "It doesn't hurt too much to walk, just when I pitch off of it. I'm sure I'll be fine."
Prior gave up eight runs and seven hits with seven strikeouts and three walks in his first loss of the year. The defeat snapped his six-game winning streak.
The highly anticipated duel between Oswalt and Prior, two of the three winningest NL pitchers by percentage since 2002, never really developed.
Oswalt had a rough start, getting himself into a bases-loaded jam in the second. But Prior flied out to right and Jerry Hairston grounded out to third to end the threat.
The Cubs finally scored off Oswalt in the third when Derrek Lee hit a two-run homer that thumped hard off the brick wall behind the left-field fence, extending his hitting streak to a career-best 13 games.
In the fourth, Neifi Perez reached first on a fielding error by Everett and Prior scored from second to give Chicago a 3-1 lead.
But the Astros batted around in the fifth off a tiring Prior to retake the lead. Lamb hit the first grand slam of his three-year career, Jason Lane and Morgan Ensberg walked and Everett followed with a towering homer to left to give Houston an 8-3 lead.
"We came apart in that inning," Cubs manager Dusty Baker said. "That 0-2 pitch to Lamb was really what did it. That's the first time I've seen an 0-2 grand slam."
Prior was removed at the start of the sixth. Glendon Rusch threw two innings of relief, giving up a run-scoring single to Lamb in the sixth.
"This was definitely a surprising game," Lee said. "We're not used to seeing Mark give up runs like that."
- Astros rookie center fielder Willy Taveras threw out a Cubs player at home plate for the third consecutive game. Taveras quickly fielded Jeromy Burnitz's single into center in the third, and threw a ball that hopped to catcher Brad Ausmus just before Aramis Ramirez made it home. "If they're going to keep running, I'm going to keep throwing them out," Taveras said. "I'm not going to let people take advantage of me."
- Everett made two errors, the fourth such game of his career.
- Houston 2B Craig Biggio ended an 0-for-15 slump by going 2-for-5 with a triple. He moved into a tie for 60th with Nellie Fox with 2,663 career hits.