ST. LOUIS — Tyler O'Neill said it wasn't actually a promise. However, the St. Louis Cardinals' outfielder did tell cancer patient Preston Dobbs he "would try" and hit a home run for him.
O'Neill came through Saturday night with a two-run homer and a career high-tying four RBIs as the Cardinals beat the Arizona Diamondbacks 4-2.
His two-run double in the first inning gave the Cardinals a 2-0 lead. He added the homer off Merrill Kelly (7-9) in the third to push the advantage to 4-1.
O'Neill, born in Burnaby, British Columbia, Canada, met Dobbs before the game. A resident of the St. Louis suburb of Maryland Heights, Dobbs got to speak with several players before the contest thanks to the Make-A-Wish Foundation of Missouri.
The 11-year-old Dobbs' ability to keep fighting through the toughest of circumstances impressed O'Neill.
"I was able to put that ball in the air for Preston," O'Neill said. "It was just a good feeling."
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.
Dakota Hudson pitched six effective innings to help St. Louis break a three-game losing streak.
Eduardo Escobar hit his 19th homer for Arizona, which snapped a four-game win streak.
Hudson (8-4) gave up three hits and two runs in a 94-pitch stint. He struck out five and walked four. Hudson wriggled out of a bases-loaded no-out jam in the second after giving up a run-scoring hit to Nick Ahmed.
"When you're tested in uncomfortable situations, he figures out a way to bear down and execute," St. Louis manager Mike Shildt said. "He gutted it up - did his part."
Hudson struck out Jarrod Dyson and then got Ketel Marte to fly out to preserve the 2-1 lead.
"It was a day where I didn't have my best pitch and had to battle through it in order to get outs and keep us in position to win a good ball game," Hudson said. "It's kind of how it was - we had to make adjustments early."
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.
"I would like things to be a little smoother than it was," Kelly said. "Sometimes that's just baseball. It was just kind of not my night."
Ahmed 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.
Goldschmidt is hitting .249, the lowest average of his career at this point in the season.
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.