PHOENIX -- Carlos Beltran has been around long enough to know that there are good times and bad times in a long season.
Things are very good for the St. Louis slugger right now.
Beltran, who had one of the Cardinals' five homers in their 9-6 series-opening win on Monday, hit a two-run homer off Ian Kennedy in the first, then cleared the bases with a shot into the swimming pool area in right-center in the seconds, his 10th career grand slam.
"His swing and his approach is so simple," St. Louis manager Mike Matheny said. "He's got a good idea of what he's looking for and doesn't try to do too much when he gets it. That's just smart hitting from a guy that's been around for a while."
He has 10 home runs this season.
Beltran's performance came a week after he went 4 for 5, including two homers, for a career-high seven RBI against Pittsburgh.
"It's confidence, it's results, it's a little bit of everything," Beltran said. "It's being able to come to the ballpark and have good BP [batting practice] sessions, staying inside the ball, things like that. You can carry those to the games. I'm just going through good times. In this game, you go through ups and downs."
|More on Cardinals-Diamondbacks|
|More MLB Coverage|
Jake Westbrook (4-2) blanked the Diamondbacks on four hits through seven innings.
Kennedy (3-2) threw five scoreless innings after Beltran's slam but the Diamondbacks lost for the sixth time in seven games. They have dropped nine of their past 11 at home.
"We have to get our confidence back," the Diamondbacks' Justin Upton said. "We have had a couple of tough loses. We have gotten beat up but good teams come out of these things and pick themselves up. I think we have the group to do it.
The Cardinals won their third straight and can complete a three-game sweep in the desert on Wednesday night.
"That's good news because the ball hit me pretty good," said Molina, who was expecting a slider but got a fastball. "I feel good. We'll see what happens tomorrow."
Several seasons ago Molina broke a bone in the same spot.
Westbrook struck out eight and walked two. Only one Arizona base runner reached second against the sinker-throwing St. Louis right-hander.
"You could see the movement on the ball from the side," Matheny said. "When you see a sinker moving that much you know that they're going to have a hard time over there trying to put good wood on it."
Aaron Hill singled three times off Westbrook, two of them infield hits.
The Cardinals, who led 3-0 after one and 7-0 after five on Monday night, took a 6-0 lead in the second as Kennedy struggled with his control. Skip Schumaker doubled with one out, then Westbrook drew a two-out walk. Jay was hit by a pitch to load the bases and bring up Beltran, who lofted a 2-1 pitch into the swimming pool area in right field for the 32nd multi-home run game of his career.
Kennedy settled down after that, retiring the last 13 batters he faced, 15 of the last 16. He struck out Beltran twice. But the damage was done.
"Early in the game he was kind of like leaving balls in the middle of the plate," Beltran said. "Late in the game he was kind of hitting the corner, the spots, where he normally does. We took advantage of the opportunities and after that Westbrook was able to go out and pitch a good game."
The Arizona ace, who went 21-4 last season, lost consecutive starts for the first time since September 2010. He was beaten 2-1 at Washington last Wednesday, ending his nine-game winning streak. The six runs were the most he has allowed in his past 23 outings.
Kennedy struck out six, walked two and hit a batter.
The Diamondbacks averted a shutout when Upton led off the ninth with a single and scored on Miguel Montero's double.
- St. Louis has scored in the first inning for eight games in a row.
- The Cardinals' five homers in Monday night's game were their most since hitting six on July 5, 2007, against Pittsburgh.
- Beltran needs two stolen bases to become the eighth player in major-league history with at least 300 steals and 300 homers.
- Beltran had his second multi-homer game of the season.
- The Cardinals go with Kyle Lohse (4-1, 2.11 ERA) while Arizona sends left-handed rookie Wade Miley (3-0, 2.33) to the mound in the series finale.
- Arizona failed to score in 12 innings against St. Louis' starters in the first two games of the series.
- The Diamondbacks' Cody Ransom struck out four times, giving him seven in two games.