SAN FRANCISCO — Chris Heston kept it simple and used the energy from the pregame ring ceremony to produce another quality start.
Heston pitched into the eighth inning, Brandon Crawford hit a two-run homer and the San Francisco Giants snapped an eight-game losing streak with a 4-1 victory over the Arizona Diamondbacks on Saturday night.
Joe Panik had three hits and drove in a run as San Francisco stopped its longest slide in nearly nine years. Buster Posey went 2 for 4 with an RBI single on the same night that the Giants received their World Series rings for last year's title.
"It's awesome some of the days I've been lucky enough to pitch on," said Heston, who also started the Giants' home opener. "That will fire you up. It's a reminder of how good last year was. I just wanted to attack the bottom of the zone and let these guys play defense."
Nori Aoki also had two hits, including a leadoff double in the first that led to the Giants' first run and sent them on their way to their first win at home.
David Peralta led off the fourth with a home run for the Diamondbacks, who had won five of seven. Mark Trumbo had two hits.
Heston (2-1) allowed five hits in 7 2-3 innings. He struck out six and walked one.
"He's got savvy out there," Giants manager Bruce Bochy said. "He's a four-pitch guy with command. That usually works. I know he just pitched against them but he has good stuff and he's made himself into an all-around great pitcher."
Arizona right-hander Rubby De La Rosa (2-1) gave up four runs, three earned, and nine hits in 6 2-3 innings. He struck out seven and walked two.
"He just left too many pitches up," Arizona manager Chip Hale said. "When he was pitching down he had some success. He's getting better every time out."
Heston left after yielding an infield single to Jake Lamb, who has reached in all 10 of his games. Sergio Romo came on to strike out Paul Goldschmidt to end the inning.
Santiago Casilla pitched the ninth for his fourth save in four chances.
Arizona center fielder Ender Inciarte was 0 for 4, ending an eight-game hitting streak.
The Giants recalled catcher Andrew Susac from Triple-A Sacramento when Jake Peavy was placed on the disabled list.
"The bigger need right now is having another player help us out on the bench," manager Bruce Bochy said. "With a day off, we can skip a start and the bullpen is in good shape."
Susac and Hector Sanchez were in a close battle to make the big league squad out of spring training.
"It frees me up to pinch-hit Susac or Sanchez and not worry about leaving Posey out there," Bochy said. "He's another bat, another body. Susac will be in the mix."
Diamondbacks: C Gerard Laird (lower back tightness) is eligible to come off the disabled list when Pittsburgh visits Phoenix on Friday.
Giants: Peavy is out with a back strain. He said he first felt it when the team flew home from Arizona following spring training. An MRI revealed a muscle spasm and some damage to the SI joint in his left side. "It's frustrating, of course," Peavy said. "At the end you have to make the right decision. It has to be right to help the team moving forward."
RHP Jeremy Hellickson (0-2, 6.55 ERA) starts Sunday's series finale for the Diamondbacks. The 2011 AL Rookie of the Year has lost his first two starts with Arizona.
RHP Tim Hudson (0-1, 2.03 ERA) takes the mound for San Francisco. He is 9-1 with a 2.01 ERA in 13 career starts against the Diamondbacks.