SEATTLE -- Nelson Cruz delivered a walk-off infield single for an 8-7 victory and a series sweep for Seattle on Sunday as Rangers closer Sam Dyson's difficulties continued.
The Mariners rallied from deficits of 6-1 and 7-6 to sweep their American League West rivals at Safeco Field for first time since 2007.
"This was a big one for us," Mariners manager Scott Servais said. "Obviously we know what Texas has done in our division the last two years. We're starting to get some momentum going our way. Wins like that hopefully lead to some bigger things here coming up the next series against Miami."
Nomar Mazara homered off Mariners closer Edwin Diaz in the top of the ninth for a 7-6 lead, but Dyson again couldn't hold a lead for Texas as he blew his third straight save opportunity of the season.
"These guys have been in this spot before," Rangers manager Jeff Banister said. "They understand [losses like this], they hurt. This one, I'm sure, we'll chew on for a little bit. That bullpen situation, we'll continue to have discussions, and see where that takes us."
• Dyson can't get a grip on closer's role
Pinch-hitter Jarrod Dyson led off the ninth with an infield single, stole second and then moved to third when Leonys Martin dropped a bunt that Sam Dyson fielded toward the third-base line, but couldn't make a throw to put runners on first and third.
After Martin stole second, Dyson walked pinch-hitter Mike Freeman and Mitch Haniger to force in the tying run. Dyson got Robinson Cano on a fielder's choice force play at home before Cruz beat out a single up the middle that shortstop Elvis Andrus gloved, but couldn't make a play as Freeman raced home with the winning run.
"We were patient, we walked, we had speed, like I showed," Cruz said with a laugh. "Everything started with [Jarrod] Dyson. He found a way to get on base and with his speed, it set everything up."
Texas dropped to 4-8, its worst start since 2006, while Seattle moved out of the cellar at 5-8 with its third straight win.
Rangers lefty Cole Hamels (0-0, 3.50 ERA) wound up with another no-decision after giving up four runs (three earned) in five innings. For a third straight start, the Rangers bullpen couldn't hold his lead, this time a 6-1 advantage built largely on Shin-Soo Choo's five RBIs on a three-run homer and two-run double.
Mariners starter Hisashi Iwakuma (0-1, 5.40 ERA) lasted just three innings as he allowed seven hits and six runs, but recently claimed reliever Evan Marshall came on for 2 1/3 scoreless innings as Seattle's bullpen kept Texas in check while the offense chipped away.
Haniger's three-run homer in the third got Seattle started, Danny Valencia doubled in a run in the sixth and Guillermo Heredia tied it with a solo shot in the seventh off Tony Barnette.
MOMENTS THAT MATTERED
Rack 'em up: After tallying just one run in the first two games of the series, the Rangers jumped on Iwakuma with Choo's three-run homer in the second. Texas had homered in nine straight games before arriving in Seattle, and got back on track when Choo hammered a first-pitch curve into the right-field seats for his first long ball of the season. Rougned Odor started the rally with a one-out double and Iwakuma hit Jonathan Lucroy before Choo drove a pitch 393 feet, per Statcast™, for the early 3-1 lead.
Rookie keeps rolling: Haniger has been a highlight for the Mariners in the first two week, and he stretched his hit streak to 10 games with a three-run blast off Hamels, a 407-foot shot to left-center in the third to cut Texas' lead to 6-4. The 26-year-old right fielder leads Seattle with four homers and 10 RBIs, all coming during the 10-game stretch in which he's batted .359 (14-for-39) after Sunday's 1-for-3 with a walk. Haniger also went up over the wall to rob Joey Gallo of a home run in the eighth and keep the score tied at 6.
• Gallo making most of opportunity
Which was bigger, hitting his homer or robbing Gallo?
"I'd say probably the catch, just to keep the game tied. That was big," Haniger said.
"Obviously you never want to start the season the way we did. Some unfortunate luck, bad timing, bad pitching, bad hitting. We had a better team that we were showing. You sweep a team like this, not just for us, people outside realize we have a good team, and we'll be alright at the end of the day." -- Mariners reliever Marc Rzepczynski
HIT THE EJECT BUTTON
Servais earned his first ejection of the year and second of his career when he got into it with first base umpire C.B. Bucknor after a delayed out call on a broken-bat grounder to first by Martin for the final out in the sixth. Bucknor initially appeared to call the ball foul as Mike Napoli fielded it behind the bag, then signaled out after Martin had headed to the dugout to get a new bat. Servais ran from the dugout and protested vigorously enough to eventually get the heave-ho. His only previous ejection came June 26, 2016, against the Cardinals. More >
Rangers: Texas travels to Oakland to play the A's for the second time in the last two weeks, with rain in the forecast for Monday's series opener at Oakland Coliseum. Former Athletics right-hander A.J. Griffin is scheduled to start for Texas. Griffin (1-0, 6.75 ERA) came up with the A's in 2012 and won 14 games there in 2013 before arm injuries stalled his career. He resurfaced with Texas in 2016, going 7-4 with a 5.07 ERA in 23 starts.
Mariners: Lefty Ariel Miranda (0-1, 5.06 ERA) gets his third start of the season in place of the injured Drew Smyly and faces another team besides the Astros in Monday's 7:10 p.m. PT series opener against the Marlins at Safeco Field. The 28-year-old is 5-3 with a 3.78 ERA in 13 games (12 starts) for Seattle since being acquired from the Orioles last July 31. This will be his first time facing Miami.
Watch every out-of-market regular-season game live on MLB.TV.