Matt Kartozian-USA TODAY Sports

Geraldo Perdomo and Pavin Smith each collected two hits and the Arizona Diamondbacks scored the go-ahead run on an eighth-inning error in a 5-4 win over the Kansas City Royals on Monday in Phoenix.

Arizona had lost four of its five previous games. Kansas City fell for the ninth time in 10 games.

With one out in the bottom of the eighth, Christian Walker walked and Gabriel Moreno singled, moving Walker to third against Kansas City reliever Aroldis Chapman (0-1).

Nick Ahmed followed with a groundball to first baseman Vinnie Pasquantino, whose errant throw to home plate allowed Walker to score.

Kansas City had rallied to tie the game at 4 in the top of the eighth after Andrew Chafin (2-0) came in to replace Miguel Castro, who left after allowing a one-out single to Michael Massey.

Chafin walked Nicky Lopez on four pitches and then gave up an RBI single to Kyle Isbel.

Arizona left-hander Tommy Henry made his first appearance of the season, taking veteran Madison Bumgarner's schedule start.

Bumgarner, owed $34.4 million by the Diamondbacks, was designated for assignment on Thursday after going 0-3 with a 10.26 ERA in four starts this season.

Henry is in his second major league season after being drafted by the Diamondbacks in 2019.

Edward Olivares belted a solo home run with one out in the first inning off Henry, who lasted 4 1/3 innings and allowed four hits and three runs. Henry walked four while striking out one.

Pasquantino doubled with two outs in the third inning and Salvador Perez followed with an RBI single to tie the game at 2.

After walks to Corbin Carroll and Lourdes Gurriel Jr. in the bottom of the third, Smith hit a single to score Carroll. Gurriel then came home on a groundout to third base by Moreno to put Arizona ahead 4-2.

Henry was relieved by Kyle Nelson after walking Bobby Witt Jr. and Olivares to start the fifth inning. Witt was caught stealing before Henry's exit.

Pasquantino, who finished 3-for-4, greeted Nelson with a single, moving Olivares to second. Perez followed with a double that drove Olivares home and cut the deficit to 4-3.

Perez and Massey each had two hits for Kansas City. Royals starter Brad Keller yielded four runs on four hits and six walks in four innings. He struck out two.

More must-reads:

TODAY'S BEST
Do Oilers need more from Connor McDavid to get to Stanley Cup Final?
All-Rookie teams show gems available all over draft
The NBA has not witnessed this much parity in 50 years
Knicks expected to be 'aggressive' in upgrading their roster
Drew Bledsoe offers advice for Patriots rookie QB Drake Maye
2024 AFC revenge games: Brothers, 'Stefon Diggs Bowl' to take center stage
2024 NFC revenge games: Which game should Cowboys, others have circled?
How All-Star Race victory could turn Joey Logano's season around
Xander Schauffele's triumph could open the floodgates for his career
Anderson Silva, Chael Sonnen will finish off their trilogy in a boxing ring
Ranking the five best MLB free-agent signings of offseason
Veteran WR, former first-round pick announces NFL retirement
Oilers advance to West Final again after holding off Canucks in Game 7
Bengals star WR not expected to sign franchise tender before OTAs
Red Sox RHP diagnosed with ligament damage in elbow
Watch: Caitlin Clark shows off range with logo three, but Fever fall short
Former Dolphins receiving leader announces his retirement from NFL
Detroit Lions dominate PFF's top-25 players under 25
Hall of Famer, legendary Raiders offensive lineman dead at 86
Report: Cavs owner 'would never' trade Donovan Mitchell to this team

Want more MLB news?

Join the hundreds of thousands of fans who start their day with Yardbarker's Morning Bark, the best newsletter in sports.