The Cardinals sent nine batters to the plate in the fourth against Harrell and scored seven times to beat their former National League Central division rivals, 13-5, in the opening game of a two-game series at Minute Maid Park.
"When you leave the ball up against a team that hits, they're going to hit," Harrell said.
Harrell was touched for seven runs, seven hits and four walks in 3 1/3 innings. Astros starters had posted a 3.14 ERA in the team's previous 37 games, with Harrell going 1-1 with a 1.73 ERA in his first four starts in June, with four walks and five earned runs allowed in 26 innings.
"He had been solid pretty much this whole month," Astros manager Bo Porter said. "I know ERA-wise he was right there the top of the American League for the month of June, and tonight was the one big inning that kind of got away from us. Overall, you look at his statistics throughout the month, he had been solid."
Cardinals starter Jake Westbrook (4-2) worked six innings and allowed four runs and four hits. The Astros didn't manage a hit until Matt Dominguez led off the sixth with his 11th home run of the season -- the first against Westbrook this year -- to cut the lead to 9-1.
"He challenged guys and next thing you know, guys were putting good swings on him," St. Louis manager Mike Matheny said. "He worked his way out of it and the young guys came in and did their job."
Brett Wallace added a two-run triple in his first game back with the Astros, breaking an 0-for-24 slump against Major League pitching. Jason Castro had a sac fly later in the sixth to get Houston to within five runs, 9-4.
"When you give up big innings -- and tonight it was the one big inning in the fourth -- but offensively our guys continued to battle and didn't give any at-bats away," Porter said. "Dominguez hit another big home run and we were able to get to [Westbrook] eventually, but when you're behind the eight-ball like we were, that's a lot of runs to make up against a team of the Cardinals' caliber."
Harrell (5-8) struck out the side looking in the third before Carlos Beltran led off the fourth with a double and scored on a single by Allen Craig (4-for-5). Harrell walked three of the next four batters to force in a run, and Matt Carpenter made it 6-0 with a bases-clearing three-run triple to right-center.
"I felt like he did a good job the first three innings, even though he ran into a little bit of trouble," Porter said. "It just looked like in the fourth inning he just lost his command. There was a lot of deep counts early on, but he was able to get out of some jams and wasn't as fortunate in the fourth, and they put together a pretty big [inning]."
Astros right fielder Justin Maxwell suffered a mild concussion while diving in an effort to catch Carpenter's fly ball and had to be removed from the game. Porter said he will be evaluated further on Wednesday.
"He made a nice effort," Harrell said.
Beltran smacked a two-run home run in the sixth off Dallas Keuchel to put the Cardinals ahead, 9-0. Keuchel, who was moved back to the bullpen, worked 2 2/3 innings and allowed two runs and three hits while striking out six.
David Freese drilled a two-run homer for St. Louis in the seventh off Travis Blackley, and Craig hit a two-run homer in the eighth off Josh Fields to make it 13-4.