HOUSTON -- Lance Berkman insists he wasn't out to exact revenge against his former team this week.
But he couldn't deny enjoying the terrific game he had Thursday night.
Berkman's three-run shot off Fernando Abad (1-2) gave St. Louis a 5-4 lead, as a mixture of cheers and boos rained down on the slugger who spent 12 seasons with the Astros.
"I don't think I could have expected or asked for a better return to Minute Maid Park than this," he said. "It's not like I was coming in here with a vendetta or something to prove, I just wanted to play well in front of my family. You always want to do well."
Matt Holliday drove in three runs during the sixth inning, and Kyle McClellan and David Freese each drove in a run as four Houston pitchers faced 14 batters before finally escaping the sixth. By that point, the Cardinals had pulled ahead 10-4.
Cardinals manager Tony La Russa loved the explosion of his offense in that inning.
"We've got some weapons," he said. "They do some really good things, like work every at-bat and stay relentless. Those are the hallmarks of giving your talent a chance. And the veterans are really the guys that are leading the way, Matt, Albert [Pujols] and Lance. That's how they built their careers."
McClellan (4-0) allowed eight hits and five runs in 5 2/3 innings for the win.
Berkman finished with four hits, a triple short of the cycle. He totaled eight hits and seven RBIs in his first series against his former team. It was his third multihomer game of the season and the 28th of his career.
The switch-hitter cracked his first homer right-handed and the second, which landed behind the Astros' bullpen in right-center, came from the left side.
Berkman said the return to Houston was emotional and he doesn't think the feeling will go away on future visits to play the Astros.
"I can't imagine that I'll ever come into this building and not think about ... years of great memories and things like that and great teams," he said. "One series doesn't put that to bed. It will always be a special place for me to come back in here."
Freese and Pujols hit consecutive singles before Holliday chased Houston starter Nelson Figueroa and trimmed the Cardinals' deficit to 4-2 in the sixth inning.
Abad was eventually replaced by Jeff Fulchino after each batter in the St. Louis lineup hit once in the sixth, and the Cardinals had pulled ahead.
Berkman ended the scoring in that inning with a run-scoring single to right. This time, most of the fans booed the former Houston star. After Pujols scored, he turned and pointed to a smiling Berkman at first base.
The Astros finally got out of the sixth when Colby Rasmus grounded out.
Figueroa yielded six hits and four runs in five-plus innings.
"The first five went great," he said "In the sixth inning, the proverbial wheels fell off. I couldn't do anything right. Every hit found a hole. Every ball found a place to land where nobody could make a play."
Cardinals third baseman Daniel Descalso made two errors in the eighth. A run scored on the second one before Lee drove in a run with a single to make it 10-7. Lee and Hunter Pence advanced on a passed ball before Trever Miller walked Brett Wallace to load the bases, but Pence was thrown out by catcher Gerald Laird after trying to score on a slider in the dirt to end the inning.
"We caught a break," La Russa said. "Laird making a play and diving into his spikes -- that's a special case there. We'll remember that one for a long time. To walk out of the inning after that play was as big as anything that happened for us on the defensive side today."
Fernando Salas allowed one hit in 1 1/3 innings for the save.
Johnson's two-run shot to left-center gave Houston a 2-0 lead in the second inning. Michael Bourn doubled and scored on a single by Pence that stretched the lead to 3-0 in the third.
Laird singled home Berkman to make it 3-1 in the fifth. Berkman had a hard-hit double down the right-field line to set up that score.
Lee snapped an 0-for-16 slide with an RBI double that extended Houston's lead to 4-1 in the fifth inning. Angel Sanchez drove in a run for Houston in the sixth.
Figueroa didn't allow a hit until Freese singled to start the fourth. He was cut down at third when Figueroa overthrew first base for an error.
Houston designated INF Joe Inglett for assignment and activated INF Clint Barmes from the DL after the game. ... Houston reliever Wilton Lopez, on the DL with nerve irritation in his right elbow, will throw a simulated game Saturday. ... Cardinals SS Ryan Theriot was out of the lineup for the third straight day after injuring his rib cage in batting practice Tuesday. He entered in the eighth inning.