ST. LOUIS -- Pitching in pain, Roy Oswalt stayed on top of his game.
Oswalt worked six solid innings before leaving with a sore rib cage muscle, and Raul Chavez hit an RBI double that broke a sixth-inning tie to help the Houston Astros beat the St. Louis Cardinals 3-2 Sunday and avoid a three-game sweep.
Oswalt injured his left side swinging at a pitch on his first at-bat, in the second inning. He was limited to 87 pitches and said he would not miss a start.
"I'm a little sore there," he said. "It's nothing I can't pitch through. It's nothing major to me."
St. Louis finished the game without Albert Pujols, who strained his left hamstring running the bases in the sixth. Pujols, who has 17 homers, 40 RBIs and a .325 average, has started all 56 games for the Cardinals and has never been on the disabled list.
Manager Tony La Russa said it does not appear to be a significant injury, but Pujols will be examined again Monday before the team begins a four-game series at Chicago.
"I'd be very surprised if he's ready to go in the next couple of days or maybe even the whole series," La Russa said. "If you told me right now he'd play next weekend, I'd take that immediately."
All Pujols knew was that his leg was very sore. He's reached base in 23 straight games and is batting .325 with 17 homers and 40 RBIs.
"I don't want to be the doctor here, and I don't think even the doctor knows what's going on," Pujols said. "We're going to wait and see."
Chavez, the Astros' backup catcher, and Cody McKay, the Cardinals' backup catcher, each had big days at the plate. Chavez was 2-for-3 with his sixth RBI. and McKay was 2-for-4 with a two-run single that gave him three RBIs this season.
Chavez, making his first start in six days, also threw out pinch-runner Hector Luna trying to steal second in the ninth inning.
"When I start, I try to do the best I can," Chavez said. "I don't get to play that much so I want to work as hard as I can."
Despite the loss, St. Louis has won nine of its last 11 and is 7-5 this year against Houston. The Astros rebounded after a 10-4 loss Saturday.
"I think they used up all their hits last night," Oswalt said with a chuckle. "I was hoping they did. I made some tough pitches, I thought."
St. Louis won the first two games of the series without La Russa, who served a two-game suspension for a confrontation with Pirates manager Lloyd McClendon. With La Russa back in the dugout, their six-game winning streak came to an end.
Jeff Kent extended his hitting streak to 21 games with a broken-bat infield RBI single in the first.
Oswalt (4-4) allowed two runs and six hits with six strikeouts and no walks. He had lost three of his previous four outings but is 2-0 with a 1.73 ERA in four career starts at St. Louis.
Octavio Dotel worked the ninth for his ninth save in 11 chances.
Jeff Suppan (5-5), who had won his previous two starts, gave up three runs and eight hits in seven innings.
McKay helped the Astros score in the first when he turned the wrong way and couldn't catch an easy pop foul on Adam Everett's sacrifice attempt. Everett ended up sacrificing to advance Craig Biggio, who had drawn a leadoff walk, and Biggio went to third on a groundout before Kent's hit.
Houston made it 2-0 in the second on consecutive singles by Jose Vizcaino, Jason Lane and Chavez, plus Oswalt's run-scoring groundout.
McKay's two-run single tied it in the fifth. McKay, batting .149 at the time, flared a 1-2 pitch to left to score Jim Edmonds and Edgar Renteria.Noteworthy
n Pujols failed to score a run for the first time in nine games.