Hisashi Iwakuma (7-5) held the Rangers to three runs and eight hits in seven innings, and Justin Smoak had three hits and scored two runs for the Mariners.
David Murphy had three hits, falling a triple short of the cycle, and drove in three runs for Texas, which remained four games ahead of Oakland in the AL West with 12 games remaining. The A's lost 2-1 in 10 innings against the New York Yankees.
Tom Wilhelmsen worked the ninth to pick up his 28th save in 32 opportunities.
The Rangers were without third baseman Adrian Beltre (stomach) and outfielder Josh Hamilton (sinus/blurred vision). Beltre should be available on Saturday, while Hamilton is out for the weekend series while undergoing tests back in Dallas.
Texas starter Martin Perez (1-2) gave up three runs and six hits in four innings. He struck out three, walked two and threw two wild pitches.
Rangers miscures contributed to Seattle's victory as the Mariners scored one run on an error by Michael Young and another on one of Perez's wild pitches.
The Rangers tied the score at 2-2 in the fourth. With one out, Young singled to right and advanced to third on Nelson Cruz's doubled to left and both scored on Murphy's single to center.
The Mariners regained the lead in the bottom of the inning. Triunfel's double down the left-field line scored Casper Wells all the way from first to put Seattle ahead 3-2. Triunfel moved to third on a fielder's choice and scored when Young booted Franklin Gutierrez's grounder.
Murphy made in 4-3 in the sixth with his 14th homer, and Olivo's shot off Alexi Ogando in the eighth capped the scoring.
Smoak doubled off Perez to open the second inning. It was the first hit Perez yielded to the Mariners in 6 1-3 innings, covering three appearances.
Michael Saunders drew a walk. With one out, Wells lined a double into the left-field corner, scoring Smoak and sending Saunders to third. That broke a 0-for-23 streak with runners in scoring position.
The Mariners added a run in the third as Gutierrez legged out a triple that bounced off the top of the center-field wall and scored on Perez's wild pitch.
NOTES: Beltre and Hamilton have combined for 76 home runs, 189 runs and 218 RBIs this season. ... Young, who extended his hitting streak to 10 games with a fourth-inning single, now has 257 career hits against Seattle. That's second all-time behind Cal Ripken Jr.'s 261. ... Mariners 2B Dustin Ackley left the game in the fourth inning with a stiff neck. ... The Seattle baseball writers chapter voted Felix Hernandez and Kyle Seager for the Mariners MVP awards for pitcher and hitter, respectively. John Jaso was given the Unsung Award. Also, the MLBPAA awarded the Heart and Hustle Award to SS Munenori Kawasaki.