ST. LOUIS (AP) — Tyler O'Neill homered and tied a career high with four RBIs, Dakota Hudson pitched six effective innings, and the St. Louis Cardinals beat the Arizona Diamondbacks 4-2 on Saturday night.
The Cardinals broke a three-game losing streak with their first win since July 5.
Eduardo Escobar hit his 19th homer for Arizona, which snapped a four-game win streak.
O'Neill, recalled from Triple-A Memphis on June 29, also drove in four runs in a 6-0 win over Kansas City on May 21, 2018.
His two-run double in the first inning gave the Cardinals a 2-0 lead. He added a homer off Merrill Kelly (7-9) in the third to push the advantage to 4-1.
Hudson (8-4) gave up three hits and two runs in a 94-pitch stint. He struck out five and walked four.
Carlos Martinez got the last four outs for his fourth save in six chances.
Kelly surrendered just one earned run over five innings. A two-out error by third baseman Jake Lamb in the first allowed the inning to continue.
Nick Ahmed had a run-scoring hit in the second for the Diamondbacks. He has reached safely in a career-best 14 successive games.
St. Louis first baseman Paul Goldschmidt, who played eight seasons in Arizona (2011-2018), reached on the error by Lamb but went 0 for 3 at the plate and is hitless in seven at bats in the series.
Diamondbacks: RHP Jon Duplantier was scheduled to throw in an Arizona League game on Saturday. He has been sidelined since June 12 with right shoulder inflammation.
Cardinals: RHP Adam Wainwright will start on Sunday after missing a scheduled start on Friday with back spasms.
"I could have gone (Friday), but they said don't push it," Wainwright said. "I was fine with it."
RHP Miles Mikolas (5-9, 4.53 ERA), who was slated to start Sunday, will go on Monday.
RHP Wainwright (5-7, 4.31 ERA) will face Arizona RHP Zack Greinke (10-3, 2.73) in the final of the three-game series on Sunday. Greinke won 10 games before the All-Star break for the fourth successive season. He has not allowed an earned run in three starts against NL Central opponents this season covering 20 2/3 innings.