Drew Stubbs delivered a two-run single and Corey Kluber tossed eight effective innings, as Cleveland silenced Texas, 5-2, in the middle test of a three-game series.
Nick Swisher and Mark Reynolds drove in a run each for the Indians, who put the brakes on an eight-game losing skid. Cleveland also ended a 12-game road winless streak stretching back to an 8-1 loss at Boston on May 24.
Kluber (4-4) was in control throughout, giving up a run on six hits in his longest outing of the season, which also snapped a four-start winless streak.
"He's getting better right in front of our eyes," Cleveland manager Terry Francona said of Kluber. "For him to go out there today and kind of shoulder that responsibility, we're really proud of him."
A.J. Pierzynski homered and David Murphy added an RBI double for the Rangers, who dropped their fourth game in six.
Derek Holland (5-3) was pulled after only 4 1/3 frames, charged with nine hits and four runs despite four strikeouts.
"I'm very disappointed with the way I performed," Holland admitted. "I'm very disappointed I didn't do my job. I didn't keep us in the ballgame."
The left-hander had won his last four decisions, and looked primed to record a fifth after striking out the side in order in the top of the first. He also worked out of trouble in the third, stranding runners on the corners by getting Swisher on a fly out, but couldn't hold on.
The Tribe snapped the scoreless deadlock in the fourth, as Ryan Raburn started the frame with a double, moved up on a Carlos Santana fly out and scored on a single from Reynolds.
Cleveland tacked on three more in the fifth, courtesy of a two-run base hit from Stubbs and an RBI single by Swisher, and could have had more -- but Kyle McClellan subbed for Holland with the bases loaded and one out and induced a rally-killing double-play grounder from Reynolds.
Jason Kipnis started the seventh by working a base on balls, stole second and eventually came around on a wild pitch.
Texas' initial answer came in the home eighth, when Jurickson Profar stroked a pinch-hit single with one out, moved up on a groundout by Elvis Andrus and came in when Murphy sliced a double to center.
Pierzynski's long blast to right off Joe Smith pulled the hosts to 5-2 with one out in the ninth, and though Nelson Cruz walked, Smith retired the next two batters to close out the victory.
Kluber had gone 0-2 with two no-decision since his last win -- a 10-4 decision at Philadelphia on May 15 ... Holland hadn't lost since a 7-2 defeat at Minnesota on April 27 ... Batting practice was canceled due to a burst pipe which created a sinkhole behind the pitcher's mound ... Andrus finished 1- for-3, extending his franchise-record streak to 34 straight games against Cleveland with at least one hit.