The Arizona Diamondbacks did just about everything right to snap a three-game losing streak and avoid getting swept by the San Francisco Giants on Wednesday.

Eduardo Rodriguez put together a third straight terrific start, the defense was sharp and Arizona did enough offensively in a 5-3 win.

Geraldo Perdomo set the tone with a lead-off home run against Giants starter Carson Seymour, his 18th of the year. Perdomo also stole a base, becoming the 11th primary shortstop to ever record 18 home runs, 25 steals and 90 RBIs in a season.

Arizona (73-74) piled on three runs in the second inning, giving Rodriguez plenty of run support.

Eduardo Rodriguez in a groove

Rodriguez tossed 6.1 shutout innings, his third consecutive game with at least six frames and one earned run or fewer (18.1 IP, 1 ER).

His season ERA dropped to 4.98, below 5.00 for the first time since May.

After both Nabil Crismatt and Zac Gallen allowed four earned runs over the first four innings of the previous two games, Rodriguez was a stabilizing force on Wednesday. The first Giants hit did not come until the fifth inning, and Rodriguez had walked only one batter to that point.

His defense played a key role, particularly during the third inning.

Blaze Alexander making a highlights tape

Blaze Alexander made a diving stop at third base, and first baseman Tim Tawa made a tricky pick to rob Luis Matos of a hit. Alexander and Perdomo made tough plays and Tawa picked both throws to end the inning.

Alexander made a diving play on a line drive to rob Patrick Bailey of a hit in the sixth inning.

This duo 🔥 pic.twitter.com/5NJPYtZBzW

— Arizona Diamondbacks (@Dbacks) September 10, 2025

Alexander is building quite a highlight reel with his play in the infield and outfield. He finished last season with a -5 fielding run value (range and arm) in the major leagues and entered Wednesday’s game at +3 this year.

Tawa, meanwhile, started just his 11th professional game at first base and scooped up everything that came his way.

The Giants (74-72) made things interesting with three runs in the final two innings, bringing the tying run up in the ninth inning against Andrew Saalfrank, who bent without breaking to record the save.

The three-game skid for Arizona came at an in opportune time with the New York Mets struggling to hold onto the third National League Wild Card spot, and a performance like Wednesday’s was needed to get back on track.

The D-backs inched to four games back on Wednesday with the Mets getting going against the Philadelphia Phillies on Wednesday afternoon.

Ketel Marte exits

The lowest moment for the Diamondbacks on Wednesday was second baseman Ketel Marte walking off the field with the athletic trainer in the seventh inning.

Up next for Diamondbacks

There are 15 games left on the schedule.

The D-backs get Thursday off before starting a three-game series at the Twins on Friday.

Brandon Pfaadt, Ryne Nelson and Crismatt are lined up in order for Arizona. Minnesota has right-handers Pablo Lopez, Joe Ryan and Bailey Ober scheduled to pitch in order.

The opener starts at 5:10 p.m. MST on Friday night and will air on 98.7 and the Arizona Sports app.Â