ST. LOUIS -- Kris Benson allowed one hit in seven innings and the Pittsburgh Pirates, who had lost six straight to St. Louis, homered a season-best five times in an 8-0 victory over the Cardinals on Tuesday night.
Brian Giles, Craig Wilson, Adam Hyzdu, Aramis Ramirez and Rob Mackowiak homered and Jason Kendall had a three-run double for the Pirates, who have won only four of their last 14.
Kerry Robinson got the lone hit for the Cardinals, a blooper to left-center with one out in the first. The NL Central leaders have won nine of last 11, and had outscored their opponents 21-4 the previous four games.
The only other baserunner allowed by Benson (5-6) was a one-out walk to Scott Rolen in the second. After that he retired the last 17 batters he faced.
Benson, who struck out four and walked one, has a 1.14 ERA in his victories and a 14.48 ERA in his losses. He had been 1-2 with a 6.75 ERA in his previous five outings.
Brian Boehringer worked the eighth and Al Reyes pitched the ninth, completing the Pirates' first combined one-hitter since Benson worked eight innings and Josias Manzanillo pitched the ninth at home against the Giants on Aug. 29, 2000.
Cardinals starter Luther Hackman (3-4), who had allowed only two homers in 57 2/3 innings, allowed three of the long balls. Making his fourth start, the converted reliever lasted four innings, giving up six runs -- five earned -- on six hits.
Giles, making his first start in four games due to a strained calf, and Wilson connected in the second with the bases empty for a 2-0 lead. Kendall's double made it 5-0 in the third and Hyzdu homered off the foul pole in left to make it 6-0 in the fourth.
Ramirez and Mackowiak hit back-to-back homers off Mike Matthews in the eighth.
Albert Pujols was 0-for-3 for the Cardinals, ending a 10-game hitting streak in which he had homered five times -- four against the Pirates -- with 17 RBIs.