"Overall, it was a good all-in-all win," manager Bud Black said. "A lot of guys contributed to this one."
The Giants elected to push back Tim Lincecum's start and instead pitched Yusmeiro Petit against the Padres, supporting him with mostly backup players in the starting lineup.
Pushed up a day in the rotation after Andrew Cashner was shut down for the season, Stults pitched six-plus innings, allowing three runs on seven hits.
"I think what he did today was pretty typical of what he's done all season," Black said. "The key for Eric is to keep the hitters off balance and keep them guessing, and he did that today. He's done that for the most part this season."
Mixing in a changeup and a slow arching curveball with his fastball and cutter, Stults allowed three runs or fewer for the sixth straight outing.
"That's been the key to my game this year, being able to vary velocity and change speeds," Stults said.
The only regulars to start for the Giants were Xavier Nady and Gregor Blanco, who usually platoon in left field. Blanco played center Sunday.
"There's really no scouting report, so there's nothing in-depth, so you're just going out there trying to execute pitches," Stults said. "Even when you know guys' tendencies, you still have to pitch to your strengths. They were fairly aggressive early in the count, so it made it harder to see their tendencies."
The Padres struck first in the second inning when Cameron Maybin scored on Ryan Theriot's throwing error, but fell behind in the fourth when the Giants scored two, with runs coming from Nady's RBI double and Eli Whiteside's sacrifice fly.
Yasmani Grandal, back in the lineup after being held to a pinch-hit appearance in Saturday's game with concussion concerns, tied the game in the fifth with a single that drove in Forsythe, who had reached with a single.
The Padres got the go-ahead runs in the seventh off Giants reliever Clay Hensley, with Yonder Alonso's single to center driving in Cabrera and Forsythe to give the Padres a two-run lead.
Cabrera's throwing error on a double-play attempt in the bottom of the seventh allowed Francisco Peguero to score for the Giants, but Mark Kotsay belted a 0-1 changeup from Brad Penny to center field for his second long ball of the season to restore the two-run lead. Cabrera added another run by stealing two bases after reaching on a walk, then scoring on catcher Hector Sanchez's throwing error.
A few Giants regular starters appeared in the bottom of the ninth when the Giants threatened Padres closer Huston Street by loading the bases after a single from Aubrey Huff and walks from Hunter Pence and Sanchez. Street induced an RBI forceout from Buster Posey and a lineout to center from Theriot to notch his 200th career save.
"It's a round number, but I don't want to finish there," Street said of the milestone. "It obviously means something. I got the ball authenticated, which isn't something I do after every save. It's a sense of accomplishment, but there's a lot more to get, so that's my goal."
Street appeared for the first time since he was sidelined with a left calf strain Aug. 11 and dismissed Black's observation that the closer might have been "a touch rusty" after the time off, saying it was more about calming his nerves than anything mechanical.
"You get that little kid feeling again like you're in the big leagues for the first time," Street said. "You're out there trying to prove something or just battle in general, and you get that extra adrenaline rush. You have to control it because you're so excited."