Santana (3-1), who was acquired in an Oct. 31 trade with Anaheim for minor-league pitcher Brandon Sisk, allowed six singles, struck out five and walked none.
Greg Holland, who logged his sixth save in seven opportunities, gave up two unearned runs in the ninth on a Michael Brantley two-out triple, which scored Mark Reynolds, who had an infield single, and Lonnie Chisenhall, who reached on Eric Hosmer's error. Holland struck out Jason Kipnis to end the game.
The Indians have scored three runs or less in eight of their past 10 games and 13 times this season, going 3-10 in those games.
Scott Kazmir (0-1), who was making his second big league start in two years, was charged the loss. He gave up two runs on five hits, while striking out four and walking two. In his previous start, the Indians scored 19 runs and were ahead 14-0 going into the bottom of the second at Houston, but Kazmir failed to get out of the fourth inning, giving up six runs on eight hits, including two homers.
Kazmir, a two-time American League All-Star selection while with Tampa Bay, pitched last season with the Sugar Land Skeeters in the independent Atlantic League and signed a minor league contact with the Indians in January. He won a slot in the Cleveland rotation after a strong spring training.
Perez homered just inside the right-field foul pole in the second inning on an 0-1 pitch from Kazmir after he walked Jeff Francoeur.
The Indians had five base runners in the second and third innings, but failed to score.
The Indians used five relief pitchers in the seventh when the Royals added a run. Alex Gordon's two-out single was the only hit. The inning included Bryan Shaw walking the only two batters he faced and Rich Hill walking Eric Hosmer, the only batter he faced, with the bases loaded to score Gordon.
Herrera replaced Santana and promptly gave up a leadoff double to Michael Brantley to lead off the eighth. Brantley went to third on a wild pitch, but was stranded
Notes: The Royals will call up LHP Will Smith from Triple-A Omaha on Sunday as the 26th man for the day-night doubleheader with the Indians and he will start the second game. Smith went 2-1 with a 2.45 ERA in four Pacific Coast League starts. .RHP Corey Kluber will make his first start of the season in the nightcap for the Indians. He was rained out of his previous two starts. .RHP Jeremy Guthrie, who starts the opener, is 7-0 in his past 15 starts, dating to Aug. 8. LHP Paul Splittorff holds the Royals' record with 16 consecutive undefeated starts in 1977-78.