ST. LOUIS — Nothing was working for Jake Westbrook, a ground ball pitcher who gave up three sacrifice flies.
But there was nothing to worry about with the St. Louis Cardinals offense ringing up 17 hits against a team that's still waiting for the adrenaline charge that usually comes with changing managers.
David Freese's three-run home run snapped the team's seven-game long ball drought and Matt Holliday's three-run double was the go-ahead blow as St. Louis beat the Houston Astros 13-5 Thursday to complete a three-game sweep.
"I was in trouble the whole day, really," Westbrook said. "Our offense came through and really picked me up. Picked this team up."
Freese and Holliday each had four RBIs and Allen Craig had three hits and three RBIs. The Cardinals shrugged aside a 4-0, fourth-inning deficit and sent Houston to its seventh straight loss.
"This team, they get the blood in the water and they can pile them on," Cardinals manager Mike Matheny said.
The Astros are 0-4 while getting outscored 32-8 since interim manager Tony DeFrancesco replaced Brad Mills as leader of the stripped-down roster. Houston has won just seven of its last 50 overall.
"We got 11 hits and some of the guys got some big days, so there is some life," DeFrancesco said. "Unfortunately, once the game gets out of hand it's tough for our guys to continue to bounce back after they've been getting beat on for a while."
Ben Francisco had three hits for the Astros, who were swept for the third time this month and 12th overall.
Westbrook (13-9) won for the fourth time in five starts despite struggles with control two days after getting a new contract for next season with a mutual option for 2014.
Westbrook surrendered five runs on seven hits, threw two walks and hit two batters in five innings, ending a string of 13 consecutive starts of at least six innings.
Astros rookie lefty Dallas Keuchel (1-6) retired 11 of the first 12 batters, but six of his last seven reached base, one on an error. He earned his first career RBI on a sacrifice fly in the second, but was charged with five earned runs in four-plus innings.
"I felt good today, thought it was going to be another quality start," Keuchel said. "That fifth inning kind of unraveled things."
The Cardinals were 10 for 14 with runners in scoring position against five pitchers to sweep the Astros for the first time since April 2009. They wrap up a 6-3 homestand with a string of contenders awaiting.
St. Louis starts a 10-game trip Friday night with three games at NL Central-leading Cincinnati, followed by three at wild card-contending Pittsburgh and four at NL East-leading Washington.
"A very big road trip, there's no doubt about that," Matheny said. "We need to string them together, that's all there is to it."
Like Westbrook, the 24-year-old Keuchel entered with decent recent numbers from three consecutive quality starts. He's 0-6 in nine starts since beating the Indians with a six-hitter on June 23.
Freese's 16th homer capped a two-out rally in the fourth. The Astros elected to pitch to Freese instead of Daniel Descalso, just 3 for 21 during the homestand to that point and batting .226.
The first five Cardinals reached safely to start the fifth, including an error. Holliday, who had been just 5 for 36 with two RBIs on the homestand, put St. Louis ahead 7-5 with his double.
"I know I've been struggling, but I don't really feel that far off," Holliday said. "I try to make it day by day and just try to have good at-bats."