Rodriguez (2-0) threw seven strong innings, firing 24 first-pitch strikes to 32 batters. He walked two and struck out four and prevented the Royals from becoming the first team to go 10-0 since the 1987 Milwaukee Brewers won their opening 13 games.
Rodriguez threw 99 pitches - 73 strikes - before Jose Santiago gave up one hit and struck out one in a scoreless eighth. Danys Baez walked one and struck out two in the ninth as Cleveland snapped a three-game losing streak.
Milton Bradley homered and scored two runs as the Indians pounded out a season-high 13 hits. Bradley, one of the few Indians enjoying a good season at the plate, has hit in each of the team's 11 games.
Kansas City left 12 runners on base and was 1-for-8 with runners in scoring position.
Royals starter Darrell May (0-1) went four innings, allowing three runs and seven hits with one walk and three strikeouts in his first appearance of the season.
Beyonce flaunts bikini body, Blue Ivy in vacation pics
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need