McClellan inherited a 3-2 lead in the eighth, but he gave up two-out runs in both the eighth and ninth innings as the Cardinals' four-game winning streak ended.
Instead of making excuses or dashing out to avoid the questioning, McClellan stood and took full blame for the defeat.
"You know you're going to lose some, but it's tough to lose those when you have the lead like that," McClellan said. "[Starter Chris Carpenter] battled, and the offense put some stuff together. It's a tough game to lose. It's hard sitting here. It's the hardest thing for me as a reliever, those kinds of games."
Their recent offensive problems continued, but the Cardinals looked as if they were going to find a way to win yet again. They got on the board on Matt Holiday's 18th homer of the season, a solo shot in the second that marked his seventh long ball in 118 at-bats since joining St. Louis.
The Cards took a a 3-2 lead on two-run single by Ryan Ludwick with two outs in the sixth, putting Carpenter in line for what would have been his 15th win of the season.
But with closer Ryan Franklin unavailable after pitching three out of the past four days, the roles in the bullpen were shifted. So McClellan got the call with nobody on and one out in the eighth.
The righty got a Carlos Lee groundout before things started to unravel. Miguel Tejada singled and Darin Erstad followed with a double to right-center that tied the game at 3.
"It was a cutter in, and I felt like I got it in," McClellan said. "We had been coming in all day so he was probably looking in there, but it was just one of those that found a hole. If I could go back and do it again, I don't think it was the wrong pitch. I don't think it was a bad pitch, but he just got a hit. Nothing you can really do about it."
Albert Pujols walked and stole second in the bottom of the eighth, but he was stranded. McClellan then stayed in to pitch the ninth and again got two outs before trouble struck. He served up a solo homer to Jeff Keppinger that just eluded the glove of Holliday in left. All four of Houston's runs came with two outs.
"Kyle, both times were two outs and nobody on," said manager Tony La Russa. "That's credit to them. He got a couple of balls up, and they hit both of them. But we had chances to add runs. They pitched us well."
The Cardinals won the series despite scoring seven runs combined over the three games. They scored only four combined in their wins on Tuesday and Wednesday. The reeling Astros left town 11 games behind St. Louis in the National League Central.
"We had good pitching all series," said Keppinger. "We were in every single game here and could have easily won all three. We just never really got the big hits, and fortunately today we got a big one late in the game that helped us win."
Carpenter gave up two runs in six innings, both of which came in a weird second. He allowed four straight batters to reach with two outs -- two of them on back-to-back walks to the Nos. 8 and 9 hitters -- and two of them scored. Michael Bourn's RBI single was a nubber in front of the plate that the Cardinals had no chance of fielding.
But the St. Louis ace -- who entered the game 14-3 with a 2.16 ERA -- settled down and tossed four more scoreless innings to keep the Cardinals in the game. He probably would have gone back out for the seventh inning had the Cardinals not taken the lead in the bottom of the sixth. It was the first time in nine starts that the former Cy Young Award winner didn't pitch into the seventh inning.
"He gave us a great chance to win," La Russa said. "All three games were tough. Sometimes you have to tip your cap to the other side. It went their way."
The Cardinals, who had been 28-3 since July 1 when Carpenter, Adam Wainwright or Joel Pineiro took the hill, are now 25-13 since the All-Star break.
Despite the loss, the Cardinals maintained their nine-game lead in the division with the Cubs losing to Washington. The Cardinals will send newcomer John Smoltz to the hill on Friday night, as they look to avoid losing back-to-back games for the first time since July 25 and 26.
"It's baseball," McClellan said. "They are over there getting paid to hit the ball, and today they did. We'll come back tomorrow and get the Nationals and be ready to go. We're not going to sit here and dwell on it. You're going to give up runs, you just hate to give them up in a one-run game."
B.J. Rains is an associate reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.