The Indians won their seventh game in a row, but had to survive a four-run Minnesota ninth to do it.
Tampa Bay is out front of the three-team race for the two wild card spots in the American League, holding a one-game edge over Cleveland with three to play. Texas remained a game behind the Indians by downing the Los Angeles Angels.
With each inning critical in the race for the playoffs, Cleveland used seven pitchers to subdue the Twins and their 13-hit attack.
Starter Zach McAllister did not give up a run over 4 1/3 innings, but was removed from the game with two on and one out in the fifth. The win went to Bryan Shaw (7-3), who escaped the fifth thanks to a double play grounder and then worked the sixth as well.
The Indians took a 6-1 lead into the ninth before the Twins scored four times against Chris Perez. Alex Presley tripled in a run in the ninth and scored on a ground out by Brian Dozier. Josmil Pinto hit a two-run homer later in the inning to bring the Twins within one and they then put runners on first and second with two out.
Joe Smith finally struck out Oswaldo Arcia on three pitches to end the game and earn his third save.
Michael Brantley contributed to the Cleveland offense with RBI singles in the sixth and eighth innings.
The loss was charged to Andrew Albers (2-5), who allowed three runs on seven hits in 5 2/3.
Beautician charged with giving client fatal silicone butt injection
McPhee, Cokas 'working on their marriage' after affair