SAN DIEGO (AP) Rookie Jesse Hahn gave himself a nice present on his 25th birthday and his teammates gave him far more run support than he needed.
Yangervis Solarte, obtained from the New York Yankees in the trade for Chase Headley, had four hits and the Padres tied their season high with 16. The Padres fell one run shy of their season high.
''To get a win on your birthday is awesome,'' Hahn said.
His seven wins in nine appearances are the most in Padres history and tied for the third-most by a big league pitcher since 1914.
''We haven't had it enough,'' manager Bud Black said of the scoring outburst. ''But it's great to see. It starts with starting pitching, and Jesse pitched a great game. He's not a secret, even though he's facing teams for the first time. There's video, there's scouting reports. He's being talked about because he's made a number of starts and his innings are getting up there a little bit.''
Hahn's latest impressive start put the Padres, buried in third place in the NL West, in position to sweep the series with a win Thursday. The Cardinals are in the race for the NL Central crown a season after going to the World Series.
''It was probably our ugliest loss of the year. That's the best way to describe it,'' Cardinals manager Mike Matheny said.
Hahn (7-2) struck out three and walked two in winning his third straight start. The lanky righty retired the first seven batters before Tony Cruz beat out an infield single. Hahn was acquired in a seven-player trade with Tampa Bay on Jan. 22.
''I was a little mad but at that point I was going for the double play to get out of the inning,'' Hahn said. ''It was a good pitch; unfortunately the runner scored.
Venable hit a 379-foot, three-run homer to right to cap the eight-run seventh. It was his fourth. The Padres had five hits, three walks and a hit batter off three relievers in the inning. Gyorko hit a three-run double, his third hit.
Gyorko, who returned Monday from a 44-game stay on the disabled list with plantar fasciitis, homered to left on a 1-0 pitch from Joe Kelly with one out in the fourth to give San Diego a 3-0 lead. It was his sixth. Yonder Alonso followed with a triple and came in on Venable's single.
''It obviously feels good to swing the bat the way I wanted to,'' said Gyorko, who has struggled since the Padres gave him a $35 million, six-year contract extension on April 14, based on his strong rookie season. ''It feels a lot like how I was swinging it there at the end of the year last year. It's something to build on but I still have a long way to go.''
Alexi Amarista had three hits and scored three runs, and Solarte also had three hits.
Kelly (2-2) went five innings, allowing four runs and seven hits while striking out five and walking one.
''Kelly was OK,'' Matheny said. ''It looked like good pitches were getting hit hard. It should have worked out a little better for him.''
Overall, ''That's not the kind of baseball we've played all year,'' Matheny said. No excuses. We were terrible.''
Cardinals: Manager Mike Matheny said the sound of pinch-hitter Daniel Descalso getting hit on the knee by a pitch from Joaquin Benoit in the ninth inning Tuesday night was ''as loud as a hit batsman as I've heard. It sounded terrible. But I was happy to see him get up, walk around.'' Descalso was replaced by a pinch-runner.
Padres: RHP Andrew Cashner threw another bullpen Wednesday and is scheduled to throw a simulated game during the weekend. He could begin a rehab assignment next week. He's on the disabled list with soreness in his right shoulder.
Cardinals: Shelby Miller (7-8, 4.20) is 0-1 with a 5.19 ERA in one career start and two appearances against San Diego, both at Petco Park
Padres: Odrisamer Despaigne (2-2, 1.66) tries to bounce back from rocky start in 5-3 loss to Atlanta, when he lasted only 3 2-3 innings.
Solarte has eight RBIs since joining the Padres on July 23 and has knocked in at least one run in seven of eight games.
The Cardinals acquired RHP Justin Masterson from Cleveland for minor league OF James Ramsey. Masterson is scheduled to start Saturday against Milwaukee in St. Louis.