ST. LOUIS -- Albert Pujols might have been a bit weary after a 4-hour photo shoot for the All-Star Game home run derby earlier in the day. Nope. A few hours later he went deep on his first swing.
Pujols hit his fourth homer in five games to launch a 4-for-4 performance and Chris Duncan's two-run triple in the fourth inning was the go-ahead hit as the St. Louis Cardinals beat the Pittsburgh Pirates 4-2 to snap a three-game losing streak Wednesday night.
"There were some things I had to do and I took care of it," Pujols said. "As long as it wasn't affecting my preparation for the game it was OK. No big deal."
Pujols is batting .611 (11 for 18) with two homers and three RBIs against the Pirates in five games this season and .371 for his career with 37 homers and 109 RBIs in 490 at-bats. The only blemish to his day came when he was easily thrown out at third trying to steal with two on and none out in the sixth.
He's not sure why he hits the Pirates so well.
"What I can tell you is I haven't changed anything," Pujols said. "I just try to be aggressive every time, in every series."
Pirates starter Zach Duke (3-3) gave up four runs in 5 1/3 innings, his shortest outing of a strong start to the season. Nyjer Morgan had two hits, an RBI and a steal for Pittsburgh, which stranded nine runners and has lost eight of nine.
"We hit a lot of pitches hard," said Andy LaRoche, who was 1 for 3 with a walk. "We've got to keep grinding. We can't get down on ourselves."
The St. Louis bullpen shut down the Pirates after rookie Mitchell Boggs threw more balls (43) than strikes (42) in 4 1/3 innings.
Kyle McClellan (2-1) allowed a hit and a walk in 1 1/3 innings and Ryan Franklin worked a perfect ninth for his eighth save in eight chances, part of a parade of five relievers who limited Pittsburgh to two hits.
"It's one of those things I've got to learn from," Boggs said. "The next time out I've got to make some adjustments."
Pujols homered for the second straight at-bat when lined a first-pitch fastball well over the left-field wall with two outs in the first. He's batting .500 against Duke (14 for 28) with two homers.
Pujols has 26 games in his career with at least four hits.
Duke gave up four runs on six hits. He allowed one or fewer earned runs in four of his first five starts, allowing one earned run in 6 1/3 innings in a 7-4 win in St. Louis on April 8.
"My fastball command was not good," Duke said. "But I was able to get some outs when I needed them to keep us in the game."
The Pirates got three walks, one of them on four pitches to Duke, and two hits in the second but scored only one run on Morgan's bases-loaded, two-out single. Center fielder Colby Rasmus' relay was just in time to nip Jason Jaramillo at the plate on a nice job of blocking by catcher Yadier Molina.
Pujols singled to start the fourth and Ryan Ludwick walked ahead of Duncan's one-out drive to the right-field wall, just over the outstretched glove of Delwyn Young. Duncan, who used to be a platoon player against left-handers, is batting .281 (9 for 32) with a homer, two doubles and seven RBIs.
"I don't as much think to myself, 'Oh no, it's a lefty,'" Duncan said. "It's just 'Hey, I'm hitting.' In my mind its irrelevant whether he's left-handed or right-handed.
"I think getting more at-bats against them and having some success in spring training and early in the season is giving me more confidence."
Morgan is 8 for 19 against the Cardinals this season. ... The Cardinals' 10-7 loss Tuesday to Philadelphia was their first in which they scored in five consecutive innings since 1917, according to the Elias Sports Bureau. ... Pirates pitchers have allowed a homer in nine of the last 10 games, totaling 13 in that span. ... Franklin hasn't allowed a run in 12 1/3 innings.
Thor hammers Rangers with 8 strong innings in Halos' 5-3 win
— Noah Syndergaard allowed one run over eight strong innings of four-hit ball in his longest appearance since returning from elbow surgery, and Jared Walsh homered in the Los Angeles Angels' 5-3 victory over the Texas Rangers on Tuesday night.
Rex Sox pound White Sox 16-3, extend win streak to 6 games
— Trevor Story and Christian Vazquez each hit a three-run home run and drove in four runs as the Boston Red Sox set season highs in runs and hits in a 16-3 win over the Chicago White Sox on Tuesday night.
Jared Walsh crushes 9th dinger as Angels top Rangers
Jared Walsh lines a solo homer to right-center field to extend the Angels' lead in the fifth inning.
Contreras gets first walk-off hit, Braves edge Phillies 6-5
— William Contreras singled home Ronald Acuña Jr. in the bottom of the ninth inning to give the Atlanta Braves a 6-5 victory over the Philadelphia Phillies on Tuesday night.
On road back to Washington Nationals, Stephen Strasburg allows three runs in rehab start
Washington Nationals starter Stephen Strasburg allowed three runs in 2 2/3 innings for Class A Fredericksburg Tuesday night during his first rehabilitation appearance since undergoing thoracic outlet surgery last year.
Jansen, Guerrero homer, Blue Jays beat Cardinals 8-1
— Danny Jansen hit a three-run homer and a solo shot, Vladimir Guerrero Jr. also went deep and the Toronto Blue Jays beat the St. Louis Cardinals 8-1 on Tuesday night.