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.
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.