As if either team needed any help, three errors and a balk figured prominently with 10 hits (five apiece) to help produce the early fireworks.
"Looked like it was going to be a long one," Cardinals manager Mike Matheny said.
St. Louis starter Kyle Lohse (4-1) rallied to pitch three scoreless innings to close out his outing. But the early laboring took its toll, and Lohse exited with the loss after throwing 99 pitches over just five innings. Only three of the five runs he allowed were earned.
But the Cardinals did not get a runner past second base after a two-run third inning.
"It was a grind," said Lohse. "I felt like I missed a couple spots early and they made me work a little bit more than I have had to in recent starts."
Astros second baseman Jose Altuve made the Cardinals pay for botching a potential inning-ending double play in the second inning by blasting a three-run homer that made the difference in the game.
"I tried to go sinker in and it was in off the corner and just up," Lohse said. "He did a good job of hitting there."
Lohse said he thought he had decent control, but some of the calls didn't indicate as much.
"I didn't think I had too bad of control," he said. "I was up in the zone. I felt like I was right around the zone all night. A couple calls could have gone either way. I did get a little frustrated there.
"It was tough. [Catcher Yadier Molina] is not moving, so I don't know. It's tough. It's one of those things where you're out there grinding and you feel like you're doing everything you can, hitting your spots, and you keep running full counts and 2-2 counts. It was tough."
Lohse was coming off a bit of a shaky start on Saturday against Milwaukee, as he allowed three runs, six hits -- including two homers -- and four walks in six innings. He had yielded only three runs, two walks and no homers over 27 1/3 innings in his first four starts. He still earned the victory in the 7-3 final over Milwaukee, and the Cardinals had won all five of his starts before Friday.
"They capitalized," Matheny said. "This team is hot right now. They're swinging the bats well. They've got a lot of confidence when they walk up to the plate and it shows.
"But our guys came back and put some offense back on the board and got some momentum going in the other direction. Kyle just fought today, just had too much early. It was just one of those days he didn't have that 'down' bite. When he's up in the zone, it's going to be a tough day for him."
Rafael Furcal set a Cardinals club record on Friday by leading of his fifth consecutive game with a hit. He singled to open Friday's game and scored on an error.
"I'm glad for that," Furcal said. "I try to get on base as much as I can no matter how and then score runs. That's the way you win games."
"It's always nice to have that," Matheny said. "And then in the ninth there doing the same thing, being short with the stroke and putting the ball in play and letting good things happen, give us an opportunity to bring the go-ahead run to the plate."
Furcal got caught between a rock and a hard place after his leadoff single in the ninth when Altuve purposely allowed Jon Jay's soft liner to bounce in front of him. Altuve turned it into a 4-6-3 double play and Matt Holliday, who went 2-for-5 with a triple, RBI and run scored, struck out to end the game.
"It was a great play," Matheny said. "Rafy's stuck in 'No Man's Land.' He played it exactly right."
"I can't do anything," Furcal said. "If I try to go to second base he's going to catch it and make a double play."
The top of the Cardinals' lineup -- Furcal, Jay and Holliday -- accounted for six of St. Louis' nine hits Friday, with two apiece.