Joe Camporeale-USA TODAY Sports

Dominic Canzone singled in the tiebreaking run in the bottom of the eighth inning as the Arizona Diamondbacks rallied for a 4-3 victory over the Seattle Mariners on Saturday night in Phoenix.

Canzone had two hits and two RBIs as the Diamondbacks recovered from a 3-0 deficit. Scott McGough struck out Julio Rodriguez with runners on the corners in the ninth to end it as Arizona improved to 4-10 since the All-Star break and won for just the sixth time in the past 21 games.

Tom Murphy homered and drove in two runs for the Mariners, who had a three-game winning streak snapped.

Corbin Carroll set up the decisive run by walking against Andres Munoz (2-4), moving to second on a balk and then stealing third. After Christian Walker grounded out to third, Canzone followed with a high-chopping single to center to score Carroll.

Arizona's Kevin Ginkel (4-0) struck out the side in the eighth and departed after recording the first out in the ninth.

Andrew Chafin entered and was greeted by Cade Marlowe's triple to left center. Chafin recovered to strike out Jose Caballero but walked J.P. Crawford.

McGough entered and won an eight-pitch battle with Rodriguez to earn his eighth save of the season.

Seattle's first two runs came on sacrifice flies.

Cal Raleigh and Teoscar Hernandez led off the second with singles and Raleigh eventually scored on Murphy's flyout to center.

In the third, Kolten Wong and Crawford led off the inning with singles. Wong later scored on a flyout to left by Eugenio Suarez.

Murphy came up with two out in the fourth and ripped a first-pitch fastball from Brandon Pfaadt into the left field seats. The 398-foot blast was Murphy's eighth homer of the season.

Arizona bounced back with two runs in the bottom of the fourth. Walker lined a one-out double to score Ketel Marte, and he came around to score on a single by Canzone.

In the bottom of the fifth, Alek Thomas led off with a triple and scored on Carson Kelly's single.

Seattle's Bryan Woo gave up three runs and seven hits over five innings. He walked two and struck out none.

Pfaadt allowed three runs, eight hits, one walk and struck out three.

More must-reads:

TODAY'S BEST
Rams GM shares details about Stetson Bennett’s absence
Perpetual Bulls trade candidate once more hitting the rumor mill
MLB announces host venues for 2026 World Baseball Classic
Knicks marquee trade acquisition could bolt in free agency
Pistons make decision on new president of basketball operations
ESPN and long-time NFL reporter are parting ways
If Lions HC Dan Campbell's assessment of WR is accurate it could mean trouble for opponents
NBA closes investigation into embattled Thunder guard
NFL reporter predicts Cowboys' plan for QB Dak Prescott
Cavaliers make decision on head coach J.B. Bickerstaff’s future
Two young stars get hefty bonuses for making All-NBA teams
Mavericks star duo joins exclusive club with Game 1 win
Mavericks ride 'Luka Magic' on both ends late to win Game 1
Panthers shut out Rangers 3-0 in Eastern Conference Final opener
NBA announces 2023-24 All-NBA teams
Star Padres infielder to miss significant time with shoulder injury
LeBron James, Charles Barkley passionately defend Caitlin Clark from 'petty' haters
Roger Goodell discusses factors for possible 18-game NFL season
Cowboys QB Dak Prescott has intriguing comment on his contract situation
Celtics toying around with surprise Jayson Tatum move in conference finals