SEATTLE (AP) — After getting on base with a one-out single in the ninth inning, Texas' Elvis Andrus had permission to take chances.

Andrus understood trying to take down Seattle ace Felix Hernandez required being aggressive just to get one run.

"Especially when you face a guy like that, when he's on, it's going to be hard," Andrus said. "For whoever is hitting it's going to be hard to get good contact, a base hit."

Locked in a scoreless tie, Andrus singled, stole two bases and scored on Adrian Beltre's infield grounder in the ninth as the Rangers did just enough against Hernandez for a 1-0 win over the Seattle Mariners on Friday night.

Andrus singled with one out, then proceeded to steal second and third base. The second stolen base came as Shin-Soo Choo walked on a 3-2 pitch from Hernandez and was the final batter for Seattle's ace.

Closer Fernando Rodney entered and got Beltre to hit a grounder into the hole at shortstop. Brad Miller fielded the ground ball and was able to get Choo at second, but Robinson Cano's turn on the double play attempt was rushed and the throw was wide. Beltre was safe, Andrus scored and Texas got the run it needed.

"The difference was the base hit to Andrus and he stole the two bases," Hernandez said. "That was the difference of the game."

Texas handed Hernandez (8-2) just his second loss of the season and the Rangers have now handed him 21 of his career losses.

"It's just a win. We see King Felix a lot so it's just a win," Texas manager Ron Washington said. "I wouldn't put any more credence to it than what it was."

Matching Hernandez was Texas starter Nick Tepesch and a trio of relievers. Tepesch threw 6 1-3 innings, Jason Frasor finished off the seventh, Shawn Tolleson (2-1) got through the eighth and Joakim Soria pitched the ninth for his 14th save.

Texas posted its 13th shutout and fourth 1-0 victory this season. Seattle lost its fourth straight.

Tepesch matched Hernandez all night. He faced the minimum through five innings and used just 47 pitches to set down the first 15 batters. The only batter to reach for Seattle was Mike Zunino with a single leading off the third inning.

Zunino lined a ground-rule double into the Mariners bullpen leading off the sixth, the first baserunner by either team to reach second base but was left stranded at third.

Tepesch started struggling in the seventh. With two on and one out, Tepesch was lifted in favor of Frasor who struck out pinch-hitter Endy Chavez looking and Dustin Ackley swinging to end the inning.

Tolleson worked a perfect eighth to get the victory. Soria then shut down the top of Seattle's order in the bottom of the ninth. He struck out James Jones, got a groundout from Kyle Seager and Cano grounded back to the mound for the final out.

"I don't really try and focus on who I am throwing against," Tepesch said. "It's more about the hitters I'm facing. I can't control his throwing or how well they're going to throw or maybe they're going to have a bad day. It's just controlling what I can control."

Hernandez was coming off a career-best 15 strikeout performance in his last outing against Tampa Bay. Hernandez dominated the Rays, but didn't get the victory because Seattle's offense failed to score while he was on the mound.

An identical scenario played out against Texas. Hernandez was just as dominant — minus the strikeouts — and the Mariners again failed to provide their ace any runs.

Hernandez was at 98 pitches beginning the ninth. He finished with six strikeouts, four hits allowed and one run. It was an improvement over his last start against Texas when he gave up three runs in six innings.

"Big deal. It was still a lousy game," Hernandez said.

NOTES: Seattle OF/DH Corey Hart (hamstring) hit on the field before the game for the first time since being injured on May 18. ... Rangers RHP Derek Holland (knee surgery) threw live batting practice on Friday. He's scheduled to throw another live BP session on Wednesday. ... Texas LHP Joe Saunders will make his fifth start on Saturday. He pitched last season for Seattle, going 11-16 in 32 starts.