KANSAS CITY, Mo. (AP) — Christian Walker had three hits, including a run-scoring double, to lead the Arizona Diamondbacks to a 7-3 win over the Kansas City Royals on Tuesday night.

Walker’s two-out double highlighted a three-run eighth against Josh Staumont (3-3) to extend the Diamondbacks’ lead to 5-1.

“That’s what every team’s playing for to some extent, that hit with traffic on,” Walker said. “Everybody wants to come through and get that timely hit.”

Walker delivered after Manager Torey Lovullo turned him loose on a 3-0 count.

“He earned that right to get that 3-0 swing,” Lovullo said. “I just thought it was a crucial time in the game and right guy and the right situation.”

Arizona starter Zach Davies didn’t allow a baserunner until Bobby Witt Jr., hammered his 17th homer to left field with one out in the fourth.

“My command was a little bit off,” Davies said. “I got behind guys but was able to get back into counts and was able to get contact right at guys and use my defense a lot tonight. When I needed to be able to make a pitch I could.”

Lovullo said Davies was “just pounding the zone, front to back changing speeds with his changeup/fastball combination.”

Nicky Lopez and Witt tripled during a two-run eighth to cut Arizona’s lead to 5-3.

Royals starter Jonathan Heasley pitched out of trouble in each of the first four innings, allowing a hit and a walk in each frame. Heasley escaped damage when the Diamondbacks went 0-for-6 with runners in scoring position.

Heasley’s most uncomfortable moment came in the fourth as he paused twice to vomit behind the mound. He eventually had to leave the game when the problem recurred with two out in the fifth.

“It’s not a ‘sick’ issue,” Royals manager Mike Matheny said. “He gets amped up and that’s something that’s happened to him multiple times throughout his life. He was completely unsurprised because it’s happened so often. It got to the point where I had to get him out. At some point we had to draw a line.”

Heasley’s attempt to pitch through the problem impressed Lovullo.

“It certainly spoke volumes about his toughness,” Lovullo said. “You get one out away from potentially winning a baseball game and you’ve got to come out, it’s not very satisfying, but he threw the ball well.”

Arizona tied the game in the sixth on Geraldo Perdomo’s two-out hit off reliever José Cuas’ leg.

Jake McCarthy delivered a bases-loaded sacrifice fly in the seventh, giving the Diamondbacks a 2-1 lead.

Arizona scored all seven runs against three Kansas City relievers.

“We were patient,” Lovullo said. “We executed. The first several innings we were just giving away at-bats. We weren’t locked in the way we were later in the game.”

Alek Thomas had three hits and a walk as Arizona snapped a three-game losing streak.

Joe Mantiply (2-4) got four outs to earn the win.

HITTING SLUMP

The Royals were outhit 13-5 and have gone a franchise-record eight consecutive games without more than six hits. They have lost seven of nine.

TRAINER’S ROOM

Royals 1B Vinnie Pasquantino was placed on the 10-day injured list with right shoulder discomfort.

TRANSACTIONS

Royals RHP Jonathan Heasley was recalled from Triple-A Omaha. RHP Collin Snider was optioned to Omaha, and C Sebastian Rivero was recalled from Double-A Northwest Arkansas.

The Diamondbacks claimed RHP Reyes Moronta off waivers from the Dodgers and designated IF Jake Hager for assignment.

UP NEXT

Diamondbacks RHP Zac Gallen (9-2, 2.78 ERA) will face Royals RHP Brady Singer (6-4, 3.27) on Wednesday night.