Bruce Chen (9-7) won for the fourth time in six starts after allowing just two runs on six hits and two walks in six-plus frames.
"I felt like I was making real good pitches, mixing my different arm angles and getting ahead," Chen said. "Once you get ahead, it's an offensive strike zone. It's not like when you're behind -- you can go ahead and attack the hitter."
Jason Donald's two-run homer accounted for the offense for Cleveland, which had a three-game win streak snapped. Andy Marte added two hits in defeat.
"We had chances. We had opportunities," Donald said. "(Chen) made pitches when he had to. He's a veteran guy, he knows how to pitch, and he did what he needed to do to win."
Fausto Carmona (11-13) lost for the fifth consecutive outing, giving up three runs, six hits and four walks in 6 2/3 frames.
Donald's homer tied it in the sixth, but the Royals went back in front in the seventh.
Mike Aviles hit a one-out single and Ka'aihue followed with an RBI double off the base of the wall in left-center. Trevor Crowe made a tremendous catch in center to prevent another run, and Tony Sipp maintained the one-run deficit from there.
Luis Valbuena reached on an infield single to start the seventh, and Jesse Chavez relieved Chen. The Indians put runners on second and third with two outs before Michael Brantley struck out looking to end the threat.
Maier then provided some insurance for Kansas City with a one-out solo homer in the eighth.
Blake Wood struck out all three batters he faced in the eighth, and Aviles scored on an error in the ninth to give the Royals a three-run lead. Later in the ninth, Pena's RBI single increased Kansas City's advantage to four, which stood as the final margin.
After three scoreless innings, the Royals loaded the bases in the fourth with nobody out on a pair of singles and a walk. Consecutive sacrifice flies from Pena and Maier staked Kansas City to a 2-0 lead.
Meanwhile, Chen dominated early on, allowing just two hits in five scoreless innings. He ran into some trouble in the sixth, however, as Shelley Duncan singled and scored on Donald's two-out blast to center, tying the game at two.
Kansas City leads the season series, 6-5...Indians first baseman Matt LaPorta left with a left hip strain. He is considered day-to-day...Donald's homer was his fourth of the season, while Maier blasted his fifth of 2010.