Adrian Beltre hit his 33rd homer for the Rangers, and Michael Young had his second three-hit game in four days.
Harrison (17-9) got within one out of his fourth complete game of the season, but came out after Jesus Montero's two-out single put runners at first and third. Koji Uehara struck out Michael Saunders for his first save for the Rangers.
Pitching on his 27th birthday, Harrison allowed a single to start the game. But he didn't allow a runner past first base until Justin Smoak led off the eighth with his 16th homer. The All-Star left-hander, the fourth AL pitcher to reach 17 wins, benefited from three double plays two that he started.
The Rangers (87-59) have the best record in the American League, and now have a three-game division lead over Oakland. The Athletics lost for only the second time in 10 games Sunday, 9-5 at home against Baltimore.
Texas had a 5 1/2-game lead on Sept. 6 after winning at Kansas City, gaining a half-game on the idle A's. Before Sunday's games, that lead had shrunk to two games the Rangers' smallest since April 13, a week into the season.
The start of the game was delayed 2 hours and 12 minutes by rain. A light drizzle was still falling when Harrison threw the first pitch, and persisted through the game that took only 2 hours and 20 minutes to play.
Blake Beavan (9-10), pitching for the first time since Sept. 4, allowed two runs and seven hits over seven innings. The right-hander was the Rangers' first-round draft pick five years ago before being sent to Seattle in 2010 with Smoak in the Cliff Lee trade.
The Rangers have their final off day of the regular season Monday. The two-time defending American League champions start a three-game series Tuesday at the Los Angeles Angels, before spending next weekend in Seattle and then playing seven of their last 10 games against the A's.
Texas has won eight of its last nine series, and hasn't lost consecutive games in a month.
Harrison scattered six hits and struck out five in his 8 2-3 innings, and his only walk was to Franklin Gutierrez with one out in the ninth. After Kyle Seager's infield popout for the second out, Montero singled to right and manager Ron Washington made the pitching change after 119 pitches.
Beltre put the Rangers up 1-0 in the fourth with his eighth homer in 15 games. The 33 homers are one more than he had in his debut with the Rangers last season. The only time he hit more in his career was in 2004 for the Los Angeles Dodgers, when he led the majors with 48.
David Murphy, who was at the plate in the fourth when Young got thrown out trying to advance on a ball in the dirt, led off the fifth with a single. Murphy scored when Mitch Moreland pulled a double into the right-field corner.
The NFL's Dallas Cowboys played under sunny skies in Seattle. That game, which the Cowboys lost, was already at the 2-minute warning of the first half when the Mariners and Rangers finally began.
Fans who sat through the rain delay at Rangers Ballpark were able to see both the Cowboys and Athletics games via split screen on the big video board high above right field.
NOTES: Seattle played its majors-high 24th rubber game of a series. The Mariners are 11-13 in those games, and had won seven of the previous eight. ... The Rangers played their 23rd rubber game. They're 16-7. ... The Rangers announced a paid attendance of 45,928, their 34th sellout. But a lot of bought tickets were unused on the wet day.