PHOENIX -- Opponents pitch around Paul Goldschmidt at every opportunity.
The Miami Marlins had little choice Wednesday, and the All-Star first baseman made them pay.
Goldschmidt doubled in the last two of Arizona's three runs in the 10th inning, and the Diamondbacks rallied to beat Miami 4-3 to take two of three in the series.
Miami had taken a 3-1 lead in the 10th on Donovan Solano's two-run double off Brad Ziegler (4-1), who got the victory.
In a nine-pitch at-bat, Aaron Hill opened the Arizona 10th with a pinch-hit single off Steve Cishek. Ender Inciarte walked on four pitches, then David Peralta's RBI single cut the lead to 3-2.
On the next pitch, Goldschmidt hit one to the left-centre gap for his major league-best 35th double and his fifth career walk-off hit.
"He's had to be real patient," Arizona manager Kirk Gibson said. "He got up there in a situation where they had to throw to him, and he really stung it."
Goldschmidt said he was just trying to get the tying run home from third.
"You've got a guy at third and nobody out, a chance to tie the game," he said. "You just try to put the ball in play. You're trying to hit it hard, but I just tried to remind myself there's a lot of ways to score that guy. You try not to put too much pressure on yourself."
Cishek (4-5) blew his third save in 23 opportunities.
"It just seems like the couple of times he's had struggles, it's just been up in the zone," Miami manager Mike Redmond said. "He has to throw strikes. That's pretty much the key to any closer and today he just wasn't able to do that."
Nathan Eovaldi blanked Arizona on two hits and nursed a 1-0 lead through seven innings before giving up a leadoff triple to Didi Gregorius in the eighth. Nick Ahmed singled on the next pitch for his first major league RBI to tie it 1-all.
It appeared Miami was headed for its second final-inning win in a row, after Marcell Ozuna's two-out, two-run homer in the ninth gave the Marlins a 2-1 victory Tuesday night.
Adeiny Hechavarria led off the 10th with a single off the glove of third baseman Martin Prado and advanced to second on Jeff Mathis' sacrifice bunt. Pinch-hitter Reed Johnson struck out before an intentional walk brought up Solano, who was recalled from Triple-A New Orleans on June 25.
Solano doubled to the left-field corner, bringing both runners home to make it 3-1 for Cishek, who earned the save Tuesday night.
"That's a tough one to swallow," Redmond said. "We've had a few of those. We've got to lock that down."
Arizona tied it in the eighth after right fielder Giancarlo Stanton made a diving attempt on Gregorius' sinking liner and the ball got past him, rolling to the fence.
Eovaldi left after Ahmed's tying hit, and pinch-hitter Cody Ross singled off reliever Mike Dunn. The runners advanced on Inciarte's sacrifice bunt, Goldschmidt was walked intentionally to load the bases and Miguel Montero ended the inning by bouncing out to second.
Eovaldi went seven innings plus two batters, allowing a run on four hits.
Josh Collmenter held Miami scoreless through five. But in the sixth, Christian Yelich and Solano singled with one out before Stanton hit a sacrifice fly to centre.
Ozuna doubled to lead off the seventh, extending his hitting streak to 15 games. He was stranded, though, when Collmenter fanned Hechavarria and Mathis, and Eovaldi lined out softly to first.
Collmenter gave up one run and seven hits in seven innings, striking out six and walking one.
NOTES: Stanton was 0 for 11 in the series and is 3 for 24 through six games on the road trip. ... Mathis struck out three times, twice with runners in scoring position. ... Both teams have Thursday off. The Marlins wrap up their nine-game, cross-country trip with three games against the Mets in New York. Henderson Alvarez (6-3, 2.27 ERA) starts Friday's opener against Mets RHP Zack Wheeler (4-8, 4.07). ... Arizona plays a weekend series in San Francisco. The Diamondbacks' Mike Bolsinger (1-5, 5.13 ERA) faces Giants RHP Tim Lincecum (8-5, 3.91) in Friday night's opener.