PHOENIX -- Torey Lovullo's offensive mantra through six seasons in the desert has been to build innings by getting runners on base, move them around and wait for someone to get a big hit.
A bunt single, a safety bunt and a homer — the Arizona Diamondbacks followed their manager's plans to perfection in the seventh inning against San Francisco.
Jose Rojas homered after the Diamondbacks scored two runs on Jose Herrera's squeeze bunt in the seventh inning, extending the Giants' losing streak to seven games with a 5-3 win on Wednesday.
“It’s it’s not easy to execute the way we did with that that safety squeeze,” Lovullo said. “I’m looking for just one run in that situation, advance runner to third base with one out. We got we got the bonus because it head's up baserunning, just a good aggressive play.”
Jake McCarthy opened the seventh inning with a bunt single overturned by video review — he was initially called out — and Sergia Alcántara hit a single off Logan Webb (9-4) after initially squaring around to bunt. He went to second when Giants center fielder Austin Slater tried to throw out McCarthy at third.
McCarthy scored on Herrera's bunt and Alcántara came around when Giants first baseman Brandon Belt's throw sailed to the backstop. Rojas made it 5-2 with a solo homer to the pool deck in right-center.
Noé Ramirez (3-3) allowed a run on one hit in 1 1/3 innings and Mark Melancon worked around two runners for his 14th save in 16 chances. Ketel Marte also homered in Arizona's first three-game home sweep of San Francisco since 2017.
The Diamondbacks have won five of six since the All-Star break.
“Just being able to able to hold onto certain situations late in the game,” Arizona starter Zac Gallen said. “You don't want to let balanced teams just hang around from a a finishing standpoint or an offensive standpoint. It’s what we’ve been able to do so far.”
The Giants have not.
San Francisco won five its six games before the All-Star break, but hasn't won since. The Giants suffered a four-game sweep by the Dodgers in Los Angeles for the first time since 1995 over the weekend have their first 0-7 road trip since 1985 after squandering a solid start by Webb.
Webb allowed four runs on four hits in 6 1/3 innings.
“We need to come out with more fire,” Giants manager Gabe Kapler said.
Gallen backed up a dominating performance with another solid start.
The right-hander threw seven scoreless innings to beat Washington his last start and was nearly as good against the Giants.
Thairo Estrada hit a run-scoring single off Gallen in the fourth inning and put pressure on Arizona’s defense by stealing second. Diamondbacks shortstop Sergio Alcantara dropped the throw, allowing Luis Gonzalez to score from third, putting the Giants up 2-1.
Gallen allowed two runs — one earned — on three hits and struck out five in five innings. He has allowed three earned runs in 18 2/3 over three starts since the All-Star break.
“I just had a chance to reset over the break,” Gallen said. "Sometimes the break will be good or bad. In this case so far, it’s been pretty good.
Giants: C Joey Bart was not in the lineup after being leaving Tuesday's game because of illness. ... 2B Tommy La Stella started in left field and went 0 for 5 after being activated from the COVID-19 list on Tuesday.
Giants: LHP Justin Steele (4-6, 4.02 ERA) is 3-1 with a 3.12 ERA his last seven starts heading into Thursday's series opener against LHP Alex Wood and the Chicago Cubs.
Diamondbacks: Arizona has a day off before opening a three-game series at Atlanta on Friday. LHP Madison Bumgarner (6-9, 3.71), who has won three of his past four starts, had the only unofficial no-hitter under the old doubleheader rules against the Braves on April 25, 2021.
More AP MLB: https://apnews.com/hub/MLB and https://twitter.com/AP—Sports