Kansas City has won three in a row and the Royals will try to equal their longest winning streak of the season on Saturday when they host the second game of the series.
Pena's infield single drove in the first run of the game in the second inning and he doubled home the last one in the eighth. Moustakas had RBIs in the third with a sacrifice fly and in the fifth on a ground out.
Luis Mendoza (8-9) gave up two runs on eight hits in six-plus innings to grab the win. A perfect ninth inning brought Greg Holland his 15th save.
Cleveland suffered its 10th setback in 13 games. Justin Masterson (11-15) was tagged with the loss after giving up four runs on seven hits in six innings.