Chen (4-5) held Cleveland scoreless after giving up three runs in the second. Alex Gordon, Johnny Giavotella, Mike Moustakas, Jeff Francoeur and Brayan Pena had run-scoring hits for Kansas City, which has won four of its last six to go 5-4 on a nine-game road trip.
Chen worked the first five innings before relievers Tim Collins, Aaron Crow, Jose Mijares and Jonathan Broxton pitched scoreless ball over the final four innings. Broxton worked a shaky ninth for his 11th save.
Broxton retired the first batter, but Shin-Soo Choo walked and Jason Kipnis singled. Asdrubal Cabrera walked to load the bases, but Jose Lopez hit into a game-ending double play.
Cleveland, which has lost five of six, fell to 4-11 against left-handed starters.
The Indians announced before the game that designated hitter Travis Hafner will have arthroscopic surgery on his right knee on Thursday and is expected to miss four to six weeks.
Chen improved to 6-3 against Cleveland. The Royals won two of three in both Baltimore and Cleveland after losing two of three in New York to open their trip.
Jeanmar Gomez (3-4) gave up five runs in five innings. The Indians, who swept a three-game series from Detroit last week, lost all three games in Chicago over the weekend and dropped two of three against the Royals. Cleveland, which is off Thursday, fell out of first place in the AL Central for the first time since April 22 with Tuesday’s loss.
Kansas City scored twice in the third on an RBI double by Moustakas and a run-scoring single by Francoeur. Gordon’s run-scoring double and an RBI single by Giavotella put the Royals ahead in the fourth. Pena, who had three hits, added an RBI single in the fifth.
The Indians scored three times in the second on run-scoring singles by Casey Kotchman and Shin-Soo Choo and an RBI fielder’s choice by Luke Carlin.
Giavotella started Kansas City’s third-inning rally with a one-out double. He scored on Moustakas’ RBI double before Francoeur’s single to left made it 3-2.
The Royals scored two more with two outs in the fourth. Alcides Escobar singled, stole second and scored when Gordon doubled off the wall in left. Giavotella’s single through the right side scored Gordon.
Billy Butler, the only starter without a hit, added an RBI groundout in the eighth.
Gomez gave up 10 hits.
Left-hander Scott Barnes, called up from Triple-A Columbus before the game, made his major league debut in the sixth. He walked two and hit a batter, but didn’t allow a run.
Johnny Damon singled in the sixth for his 2,736th career hit, which moves him past Goose Goslin and into 54th place on the career list.
Cabrera played shortstop Wednesday and was 1 for 4 with a walk. He was the DH on Tuesday after missing four games with a strained hamstring.
NOTES: Royals INF Yuniesky Betancourt (sprained right ankle) could rejoin the team this weekend. He is on a rehab assignment at Triple-A Omaha and has been on the DL since May 2. ... Kansas City LHP Jonathan Sanchez (biceps tendinitis) will likely get at least one more rehab start at Omaha. He’s been on the DL since May 8. ... Both teams are off Thursday. The Royals host Oakland on Friday as RHP Felipe Paulino faces the A’s. The Indians host Minnesota on Friday. RHP Derek Lowe faces the Twins. ... Struggling RHP Ubaldo Jimenez won’t make his next start until Tuesday at Detroit. He’s 5-4 with a 5.79 ERA in 10 starts. ... C Lou Marson (mouth bruise) missed his third straight game.