Harrison (16-9), pitching seven days after his second consecutive loss, didn't allow a runner until the fourth and struck out six over 5 2/3 innings.
"The first three innings, he was as sharp as he could possibly be," manager Ron Washington said. "All of a sudden, he was not as crisp as he was, and it was three innings in a row. But he got us into the sixth. For a minute, I thought he'd go way deep in the game without a lot of pitches."
Texas scored four times in the second, which started with Beltre reaching on an error that led to three unearned runs. One of those runs scored on the 16th wild pitch by Ubaldo Jimenez (9-16), who has the most losses and wild pitches in the majors.
Cleveland, which dropped to 15-42 since the All-Star break, was still searching for its first baserunner before Shin-Soo Choo and Jason Kipnis opened the fourth with consecutive walks. Harrison got out of that jam with a double-play grounder and a strikeout.
"Definitely a lot better than the last two," said Harrison, an All-Star left-hander who allowed 10 earned runs in 10 innings over his previous two starts. "Those extra two days definitely helped get my legs back under me."
The Rangers opened their six-game homestand three games ahead of Oakland, matching their smallest division lead since the All-Star break. The A's played late Tuesday night at the Los Angeles Angels.
With general manager Chris Antonetti on hand for the final series of their 10-game trip, the Indians played pretty much the same way they have for nearly four months.
"Things haven't gone right the whole second half. We're battling, we're keeping our head up and trying to finish strong," manager Manny Acta said. "But the whole second half has been rough for us."
Harrison allowed five hits and walked three, all the runners coming in his last 2 2/3 innings. He became the fourth AL pitcher with 16 wins.
Jimenez is 1-9 in 12 starts since the All-Star break. The Indians are 37-67 since they led the AL Central by four games on May 17, and have the AL's worst record at 59-83.
Jimenez struck out four and walked four while allowing five runs (only two earned) and four hits over five innings.
Beltre led off the fifth with a ball that ricocheted high off the top of the left-field wall and was initially ruled a double. Umpires reviewed the play and changed it to a homer. The replay showed the ball actually hit a metal brace supporting the wall and not the padding on top of it.
"The way it bounced ... it had to hit something," Washington said.
Beltre wasn't sure after seeing the ball bounce back on the field. He waited at second base for the umpires to come back on the field, then finished rounding the bases once they signaled home run.
"We thought the ball hit the top of the wall and came back," Acta said. "In the replays we have here it looks kind of inconclusive. Talking to the umpire, he felt it hit some metal bar back there behind the padding."
Nathan, a New York Giants fan, paid off a bet with Dallas Cowboys fan and fellow reliever Mike Adams by donning the full Romo No. 9 uniform, including pads and football cleats, during batting practice. It was the Rangers' first home game since the Cowboys' season-opening 24-17 victory at the Giants last Wednesday.
Elvis Andrus had an RBI single in the sixth for Texas, but Cleveland scored twice in the eighth against three relievers. Both runs were charged to Adams, who was struck on the back of his right calf by a ball.
"With the four-run lead, I pitched to contact and not as aggressive," Harrison said. "I left a couple over the plate."
Indians LF Thomas Neal was ruled out in the seventh for interference. He hit a dribbler down the first-base line fielded by reliever Alexi Ogando, who shot-putted the ball over the runner and into right field. But home plate umpire Ed Hickox immediately signaled that Neal was out of the running lane. ... Texas OF Nelson Cruz, in a 2-for-23 slide, got the night off. Cruz was 0 for 9 with seven strikeouts in his career against Jimenez, but Washington said the timing of the planned break was a coincidence. ... Rangers RHP Roy Oswalt, who left Sunday's start after two innings, has been diagnosed with a right forearm strain and won't throw for two to three days. He will be re-evaluated after that.