ST. LOUIS -- The odds finally caught up with St. Louis starter Kyle McClellan.
After an impressive string of starts to begin the season, McClellan threw in a clunker Monday afternoon.
The right-hander gave up a career-high seven runs -- including his first grand slam allowed -- in a 7-3 loss to San Francisco at Busch Stadium.
Outfielder Andres Torres hit the slam to cap off a five-run fourth inning that sent McClellan to the showers with his shortest effort as a starter.
"Just a tough game from the get-go," McClellan said. "I felt like I was battling. All in all, not a good game."
McClellan entered the contest with a 6-1 mark and a 3.11 ERA. His ERA ballooned to 3.86 after the four-inning stint. He entered the game with six quality starts and the Cardinals were 9-1 in his 10 previous appearances.
"Wasn't what I've been the last few games or the majority of the season," he added.
McClellan consistently fell behind on the count. He allowed the leadoff hitter to reach base in three of the four innings. He also issued a one-out walk to pitcher Madison Bumgarner that led to Torres' grand slam two pitches later.
"That walk killed me," McClellan said.
St. Louis manager Tony La Russa said McClellan landed awkwardly after a first-inning offering.
"He felt something in the first inning in his hip," La Russa said. "He was out of whack. He threw a lot of pitches nowhere near the glove. He just wasn't sharp."
McClellan would offer no excuses.
"I landed a little awkward there in the first inning," he said. "It's not an issue right now."
The St. Louis bullpen kept the game within reach with five successive shutout innings. Miguel Batista, Brian Tallet, Jason Motte and Trever Miller gave the offense a chance to get back into the game.
But Bumgarner was not about to be denied. He allowed just two runs and six hits in seven innings to improve to 2-6.
St. Louis slugger Albert Pujols broke out of an 0-for-10 slump with an RBI single in the third and his ninth home run of the season in the eighth. The roundtripper was his 99th at the new Busch Stadium.
Cardinals utility man Allen Craig continued his hot hitting with a 2-for-4 performance. Craig, who has started at four different positions this season, is hitting a National League-best 15-for-33 (.345) since May 19. He has hit safely in nine of his last 11 games.
Ryan Theriot extended his hitting streak to 13 games with a double in the third inning. The 13-game run ties Theriot for the longest active streak in the NL with San Francisco catcher Buster Posey, who is now out for the year with torn ankle ligaments.
The Cardinals rallied from an early 2-0 hole with a pair of runs in the third. Theriot started the comeback with a two-out double down the left-field line. Craig followed with a double just inside the bag at third. Pujols then drilled a 1-1 offering to right for a single that tied the score.
San Francisco blew the game open and chased McClellan with five runs in the fourth. Cody Ross, who homered to lead off the second, drew a walk before Aaron Rowand doubled. Brandon Crawford followed with a single to bring in Ross with the go-ahead run. One batter later, McClellan issued a walk to Bumgarner to set the stage for Torres' first career grand slam.
Pujols brought his team to within 7-3 with a 421-foot shot leading off the eighth. He has homered on May 30 in each of the past five seasons.
But the Cardinals managed just one baserunner the rest of the way.
Craig gave credit to Bumgarner, who entered the game losing of six of seven decisions on the season.
"He's had good stuff," Craig said. "He was working that heater, hard slider and curveball."
The Cardinals dropped to 11-13 in day games compared to 21-10 in night contests.
Steve Overbey is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.