Carrasco (2-0) came up limping after covering first base during the third inning but powered through 103 pitches. He allowed four hits and three walks while striking out five.
Kyle Seager hit a solo homer in the sixth for Seattle.
Cody Allen allowed a run in the ninth but recorded his fourth save.
Miley (0-2) allowed four walks - his first free passes of the season - after Marlon Byrd's one-out single in the fourth. Walks to Rajai Davis and Lindor forced in runs, and Miley was pulled after 3 2/3 innings.
Carrasco was hobbled when Robinson Cano hit into a force play and the right-hander stepped awkwardly on the base taking a throw.
Carrasco took a few warmup pitches after a visit from manager Terry Francona and a trainer before striking out Nelson Cruz with two on to end the inning.
The Indians turned in two outstanding defensive plays. Lindor took a hit away from Norichika Aoki in the fifth when he fielded a grounder deep in the hole and made a strong throw to first.
Napoli made a diving stop of Cano's sixth-inning grounder behind the bag at first and threw to Carrasco for the out. Francona returned to the mound following that play and Carrasco again stayed in the game. Seager homered two batters later.
Miley allowed three runs and nine hits. He was the seventh left-handed starter the Indians have faced his season. Cleveland is 3-4 in those games.
Cleveland loaded the bases in the second on three one-out singles, but Collin Cowgill bounced into a double play. The Indians hit into double plays in each of the first three innings after hitting into five in their first 10 games.