The five home runs marked a spring single-game best for the Royals. They went deep four times in their previous victory, a 10-3 defeat Monday of the Oakland Athletics.
Keller opened his second spring start with two scoreless innings. The right-hander struck out the side in the second to work out of a jam, stranding two Reds runners.
In the bottom of that inning, Jorge Soler launched his second home run in as many days, a 417-foot solo shot to give the Royals a 1-0 lead.
Three of the next four hitters reached base, including Sebastian Rivero, who smacked a two-run double off the wall in deep left-center. The Royals chased Reds starting pitcher Michael Lorenzen for three runs over 2 1/3 innings.
Keller went one inning farther, limiting the Reds to one unearned run over 3 1/3 innings. He allowed five hits and two walks and fanned three batters.
The Royals kept pounding away following Keller’s departure with a four-run fourth inning. Ryan O’Hearn led off with a home run, then Rivero added a two-run blast. Nick Loftin brought home the other run on a one-out single.
Loftin was the final hitter of the inning as the Reds rolled over to the next inning under MLB’s modified spring rules. All four runs came against Reds veteran Sean Doolittle.
Kansas City’s bullpen enjoyed a solid afternoon, retiring 11 straight hitters after Keller left the game. Royals prospect Jackson Kowar, who worked a clean seventh inning, allowed a two-run home run to Reds catcher Deivy Grullon in the eighth.
The Royals added two more runs in their half of the eighth when Kyle Isbel and Anderson Miller connected for back-to-back home runs with two outs.
Kansas City improved to 8-3 in Cactus League play. Up next, the Royals take on the Milwaukee Brewers on Thursday afternoon in Phoenix.