Joe Camporeale-USA TODAY Sports

Merrill Kelly pitched eight strong innings and batterymate Carson Kelly contributed a two-run double as the Arizona Diamondbacks notched a 7-0 victory over the San Francisco Giants on Monday night in Phoenix.

Josh Rojas had two hits and three stolen bases and Jake McCarthy added two hits and two runs to help Arizona win for the fourth time in the past five games. Carson Kelly and David Peralta also had two hits apiece for the Diamondbacks, who had 11 overall.

San Francisco dropped its fifth straight game since play resumed following the All-Star break. The Giants have lost 21 of their past 32 contests to fall to .500.

Merrill Kelly (10-5) allowed just three hits, walked none and struck out seven in a 99-pitch effort. He retired the first 15 batters he faced until Luis Gonzalez led off the sixth with a double just inside the first base line.

The other two hits off Merrill Kelly were bunt singles, as Joc Pedersen dropped one down to start the seventh and Gonzalez reached with two outs in the eighth. Merrill Kelly then picked Gonzalez off first.

Merrill Kelly is 4-0 with a 1.57 ERA in five July starts.

Arizona's Keynan Middleton plunked David Villar with a pitch to open the ninth, then induced a double-play grounder before apparently injuring his right ankle during a pitch to Pederson. Noe Ramirez replaced Middleton and struck out Pederson to end it.

The Diamondbacks scored twice in the fifth inning, three times in the sixth and twice in the eighth.

Jarlin Garcia replaced Giants starter Jakob Junis (4-2) with a runner on second and one out in the fifth, then immediately gave up a run-scoring double to Geraldo Perdomo. Alek Thomas singled home Perdomo later in the inning for a 2-0 lead.

In the sixth, Peralta drew a leadoff walk from Sam Long and moved to third on McCarthy's one-out double. Carson Kelly hammered his two-run double to deep center to make it 4-0 and scored later in the inning on Rojas' single.

Christian Walker delivered a two-run single in the eighth off Gregory Santos.

Junis gave up one run and three hits over 4 1/3 innings in his second appearance and first start since June 10. He struck out two and walked one.

More must-reads:

TODAY'S BEST
Xander Schauffele, Collin Morikawa lead at PGA Championship
Mystik Dan comes up short at Preakness, denied shot at Triple Crown
Seize the Grey wins in muddy Preakness
Panthers star named winner of 2024 Selke Trophy
Tyson Fury-Oleksandr Usyk epic increases excitement for potential rematch
Knicks could get major boost for Game 7 showdown with Pacers
WNBA to investigate $100,000 sponsorship deals for Aces players
Tiger Woods blames one big factor for missing the cut at PGA Championship
Giants All-Star pitcher suffers setback in recovery from injury
Watch: Juan Soto's first multi-homer game as a Yankee
'Ain't good enough': Draymond Green claims Celtics must 'win it all' or it's a 'failure'
Blue Jays GM wants struggling club to feel 'massive sense of urgency'
Raptors expected to flip former NBA champion during the offseason
MLB insider reveals Mets' massive extension offer that Pete Alonso turned down
Celtics legend provides update after gruesome finger injury
Bulls hire former NBA head coach as top assistant
Chiefs move on from young running back
20-year MLB veteran working out, unsure about playing future
USA Hockey names HC for 2025 4 Nations Face-Off and 2026 Olympics
Key Knicks forward ruled out for Game 7 vs. Pacers

Want more Diamondbacks news?

Join the hundreds of thousands of fans who start their day with Yardbarker's Morning Bark, the best newsletter in sports.