Ross, a first-time All-Star, won his third straight start by 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.
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.
Solarte 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.