Dave Burba pitched six strong innings in 99-degree heat and Roberto Alomar drove in the tiebreaking run with a seventh-inning double for the Indians, who won their third straight and improved to 18-8 since Aug. 2.
Cleveland moved 1 1/2 games ahead of Boston in the wild card race. The Red Sox lost 3-1 to Tampa Bay.
Burba (12-6) allowed one run and six hits, struck out three and walked three.
Cleveland has received effective starting pitching in the first three games of the four-game series. Bartolo Colon, Steve Woodard and Burba each went at least six innings and came away with victories.
Bob Wickman pitched a perfect ninth for his eighth save.
Texas has lost five straight and 14 of 18. The Rangers took advantage of a sixth-inning fielding lapse when Lofton misjudged Ricky Ledee's one-out line drive to center field, missing the ball for a two-base error. Rookie Pedro Valdes drove in Ledee with a single.
Cleveland came back in the seventh against rookie starter Doug Davis (5-5) when Wil Cordero singled, took second on Einar Diaz's sacrifice bunt, and scored on Lofton's single.
Alomar sent the Indians ahead 2-1 in the seventh with his double into the left field corner.
Davis allowed two runs and nine hits over 6 2-3 innings. He struck out four and walked two.
The Indians had a three-run eighth against Tim Crabtree. Travis Fryman doubled, Jim Thome walked, and Cordero singled to drive in Fryman. Lofton added a two-run double just inside the third-base line to make it 5-1.
Texas pulled within 5-3 in the eighth on Royce Clayton's two-run single off Steve Karsay.
Notes: Texas' Rafael Palmeiro was ejected in the eighth by home plate umpire Hunter Wendelstedt for complaining about a called third strike. ...The first-pitch temperature of 99 was the hottest for any Rangers home night game this season. ... Cleveland's seventh-inning run snapped a streak of 15 consecutive scoreless innings by Davis, longest by a Texas pitcher this season. ... Cleveland's Manny Ramirez extended his hitting streak to 14 games. ... Texas fell to 16 games under .500 for the first time since the end of the 1988 season (70-91). ... Valdes had his first RBI for Texas. ... Indians catcher Sandy Alomar missed the start with back spasms and is day to day.