Perez (2-2), who entered the game with a 13.14 ERA, allowed two runs on seven hits. He walked one and struck out four.
Keone Kela pitched the ninth inning for his third save of the season.
Nomar Mazara and Joey Gallo homered for Texas in a three-run fourth off Mariners starter Erasmo Ramirez (0-1), who was making his season debut.
Leading 1-0, Mazara hit a solo homer to center field. After a walk to Adrian Beltre, Gallo hit a two-run shot to left-center field, his seventh of the season.
The Mariners got two runs back in the fifth. Ben Gamel led off with a triple to left field and scored on Jean Segura's sharp single to right. Segura moved to second on a balk and scored on Mitch Haniger's double to left.
Shin-Soo Choo's run-scoring single made it 5-2 in the bottom of the inning.
Seattle closed within 5-4 on Haniger's two-run homer off Rangers reliever Matt Bush in the seventh.
The Rangers got a couple of insurance runs in the eighth, as Isiah Kiner-Falefa hit a two-run single to center with the bases loaded.
The Mariners twice left the bases loaded and stranded a total of 12 runners on base, batting 3-for-16 with runners in scoring position.
Ramirez, who didn't pitch in spring training because of a strained right lat, went 4 2/3 innings, allowing five runs on five hits. He walked one and struck out one.
Beltre went 2-for-3 for the Rangers, with two doubles, and scored three times.
Mariners outfielder Ichiro Suzuki -- who was surprisingly kept on the roster when Ramirez was activated before the game (Guillermo Heredia, batting .310, was sent to Triple-A Tacoma) -- reached base four times, going 2-for-3 with two walks.
--Field Level Media
Seattle | Texas | |
Erasmo Ramirez | Player | Martin Perez |
Loss | W/L | Win |
4.2 | IP | 6.0 |
1 | Strikeouts | 4 |
5 | Hits | 7 |
9.64 | ERA | 3.00 |
Seattle | Texas | |
Mitch Haniger | Player | Adrian Beltre |
3 | Hits | 2 |
3 | RBI | 0 |
1 | HR | 0 |
8 | TB | 4 |
.600 | Avg | .667 |