With the game in a scoreless tie, Mike Napoli drew a full-count walk to lead off the eighth and moved to second base on a sacrifice bunt by Yorvit Torrealba. After pinch-hitter Nelson Cruz struck out, Gentry hit a ground ball off third baseman Ryan Roberts' glove that trickled into left field, bringing home Napoli.
"Napoli did a great job of working him right there," manager Ron Washington said. "Torrealba did a great job of getting the bunt down, and Gentry came through and hit a bullet to third base. He couldn't handle it."
Harrison, who turned in his fifth straight quality start, exited the game after Willie Bloomquist doubled with one out in the eighth. He tossed 7 1/3 scoreless innings, striking out three and walking two in his first outing since throwing a five-hit shutout in a 5-0 win over the Giants on Friday.
"I thought my aggressiveness and tempo were a lot better," Harrison said. "Torrealba called a great game. I was just focused on hitting his mitt and letting him call the pitches. We were on the same page and, fortunately, we were able to scratch one across in the eighth."
Mike Adams replaced Harrison and retired the only two batters he faced, striking out Justin Upton, who had singled in his previous two at-bats, to end the eighth. When the Rangers scored and Joe Nathan secured the victory by retiring the side in the ninth -- earning his 13th save -- Adams recorded his first win of the year.
"This is the type of baseball I'm used to," said Adams, who spent more than three seasons with the Padres. "It almost made me more comfortable. When I was in San Diego, these were the types of ballgames that we were in all the time, one-run ballgames in key situations where one mistake could cost you a game."
Despite only having three hits and four players reach base Wednesday, the Rangers found a way to win their third straight game and fourth in a row over the D-backs.
"Tonight, it only took one run. Tonight, it only took one hit in a key situation," Washington said. "Yes, they outhit us. But we outscored them. That's the name of the game. We played solid defense. We made all the plays that were supposed to be made out there."
After retiring the first seven batters he faced, Miley gave up a one-out single to Brandon Snyder in the third inning. But Snyder would be the Rangers' only baserunner during the first six innings. Miley retired 11 straight after Snyder's single, giving up a one-out single to Josh Hamilton in the seventh, who threw his bat into the stands on his previous swing. Michael Young flied out to the warning track in right field to end the inning.
Harrison walked Miguel Montero to lead off the third. But Montero was doubled off on the next pitch when Roberts lined out to Elvis Andrus. Harrison gave up his first hit when Gerardo Parra reached on an infield single in the next at-bat, but the southpaw got out of the inning unscathed when Bloomquist flied out to center.
"He kept us off-balance," Bloomquist said. "He was commanding two, and at times, three pitches. He did a good job of hitting his spots and forcing us to swing early in the count, because if we didn't swing, we were down 0-1, 0-2 all the time. He was pretty tough tonight."
The D-backs reached base in each of the next three innings, but failed to score in any of them, including a fifth inning that didn't begin until after a 29-minute rain delay.
Wednesday's game was attended by 45,866, marking the 17th sellout at Rangers Ballpark this year, the second-most home sellouts in team history.