SAN DIEGO (AP) -- Tyson Ross didn't look like an All-Star when he walked five batters in the first three innings, the same number he had walked in his previous five starts combined.
''Just find a groove. The defense was back there making plays. Just find a way to get outs,'' said Ross, a first-time All-Star this year.
Jedd Gyorko singled in Yangervis Solarte with the go-ahead run with two outs in the sixth inning, and Solarte later added an insurance home run.
Ross won his third straight start, holding St. Louis to one run and four hits in six innings. He struck out seven, including fanning the side in his last inning. It was the eighth time Ross (10-10) went six-plus innings and allowed two or fewer runs, the second-longest such streak in the majors.
And he did it Tuesday night after struggling with his fastball command.
''It was just one of those days where I didn't have it and I had to battle out there,'' he said.
''He's been so good over the last couple of months, especially this month,'' manager Bud Black said. ''He was just a little bit out of sync, especially with the fastball early, and the harder he tried to reel it in, the tougher it was. ... He did right the ship, but very uncharacteristic, the five walks, especially early in the game.''
Gyorko returned Monday from a 44-game stay on the disabled list with plantar fasciitis. His run-scoring single to left off Lance Lynn came just as it seemed the Padres would strand two runners.
After Solarte and Seth Smith walked, Will Venable popped a bunt to catcher A.J. Pierzynski - the Padres' second botched bunt in as many innings - and Yonder Alonso flied out to left.
Solarte, obtained from the New York Yankees in the Chase Headley trade, homered into the short porch in right with two outs in the seventh. It was his second with the Padres and eighth overall.
Joaquin Benoit pitched the ninth for his third save in as many opportunities and second since Huston Street was traded to the Angels on July 18.
Lynn (11-8) allowed two runs, one earned, and four hits in six innings. He struck out six and walked three.
''You hate to lose a game that way when you are throwing the ball well and thinking you are making good pitches. But it just wasn't my night.'' Lynn said.
Padres: Right-hander Ian Kennedy, who missed his scheduled start because of a left oblique strain, is scheduled to throw on the side Wednesday. ... Right-hander Andrew Cashner, on the disabled list with shoulder soreness, is scheduled to throw a bullpen session Wednesday. He last threw on Sunday in Atlanta and didn't report any discomfort.
Cardinals: Right-hander Joe Kelly (2-1, 3.90) makes his first career start against Padres.
Padres: Right-hander Jesse Hahn (6-2, 2.12) is 6-1 with a 1.47 ERA since June 14, with 46 strikeouts against 17 walks.
The Cardinals had three errors, including second baseman Kolten Wong's overthrow on Rivera's grounder in the third that led to an unearned run.
''Kong just had one sail on him but obviously that one hurt,'' manager Mike Matheny said. ''We are having trouble scoring runs and facing good pitching. We've got do the little things right and today we didn't necessarily do that.''
It was Dog Days of Summer at Petco Park, so the Padres had Olympic slopestyle silver medalist Gus Kenworthy throw out the ceremonial first pitch. Kenworthy gained fame for adopting four stray puppies and their mother he found during the Sochi Games.
After throwing the first pitch, he did a flip.