SEATTLE (AP) -- Felix Hernandez had thrown only 95 pitches and was riding a streak of 14 straight batters retired headed to the ninth.
Eight innings of dominance still early in the season was enough for the Seattle Mariners ace.
''That was enough for Felix and he had enough,'' Seattle manager Eric Wedge said. ''That was where he needed to be.''
Kendrys Morales snapped a 2-all tie with a pinch-hit RBI single in the seventh inning, Hernandez allowed just one earned run and five hits over eight innings, and the Mariners beat the Los Angeles Angels 3-2 on Saturday night.
The Mariners were 0-for-10 with runners in scoring position and suffering through another miserable night without clutch hitting before Morales' line-drive single off reliever Michael Roth that scored Kyle Seager with the go-ahead run. Jesus Montero hit a two-run homer in the sixth inning for Seattle to pull the Mariners even.
That was all Hernandez (3-2) needed. He stumbled only in the third inning when Chris Iannetta led off with a solo homer and the Angels added an unearned run. Hernandez won at home for the first time this season.
''Like always, he throw an invisible ball. It's unbelievable,'' said Montero, who caught Hernandez. ''He settled in so great.''
The Mariners' ace continued a dominant run over his past three starts. He's allowed just two earned runs in 22 innings and struck out 28 over the three outings. Luis Jimenez put a scare into Hernandez leading off the eighth, lining a 2-2 pitch home run distance down the left-field line but about 5-feet foul. Hernandez came back to strike out Jimenez, get Peter Bourjos on a ground out and fly out from Mike Trout.
After helping cut down Mark Trumbo on an attempted potential squeeze play at home plate in the fourth inning, Hernandez retired the final 14 he faced. He walked one and struck out seven.
Wedge decided to go with closer Tom Wilhelmsen for the ninth. Josh Hamilton singled with one-out, but Wilhelmsen struck out Trumbo and got Howie Kendrick to line out for his seventh save.
''I felt a little tired today. ... I said, 'I'm good with that. Give it to (Wilhelmsen).' He's the closer,'' Hernandez said. ''It's early in the season. I feel good about it.''
After missing scoring opportunities earlier in the game, the Mariners finally pulled even in the sixth. Raul Ibanez led off with a walk and on the next pitch, Montero tied the game at 2-2 with a 406-foot shot to deep left center.
Seattle's rally continued in the seventh when Seager led off with a single to extend his hitting streak to 16 games, the longest current streak in baseball and was followed by a single from Michael Morse that ended the night for Angels' starter Joe Blanton (0-4). Roth struck out Justin Smoak, and Seattle manager Eric Wedge called back Raul Ibanez in favor of Morales, who lined a 1-0 pitch to give the Mariners the lead.
Morales was getting a night of rest before being called on in the seventh.
''It was a matter of having Kendrys Morales on the bench,'' Wedge said.
The Angels got to Hernandez quickly in the third. Iannetta led off with a solo homer on the first pitch of the inning and his first career hit in nine previous at-bats against Hernandez. Bourjos reached with a one-out single, then stole second and advanced to third when Montero's throw was wide and went into center field. The error proved costly as Trout followed with a sacrifice fly and a 2-0 lead.
The Angels tried to squeeze home a third run in the fourth inning after Howie Kendrick's single put runners on the corners with one out. Brendan Harris' bunt went directly toward the mound, where Hernandez quickly fielded and flipped it with his glove to Montero, who went to his knees to block the plate and tag Trumbo for the second out of the inning.
The Angels didn't get another base runner until Hamilton's one-out single in the ninth.
''He settled in and made some pitches with guys in scoring position. He's tough, no doubt,'' Angels manager Mike Scioscia said of Hernandez. ''Give them credit, they came back. After we got our couple, they shut us down.''
Notes: Trumbo singled in the second inning off Hernandez and has now reached base in all 23 games this season for Los Angeles. ... Seattle could win its first series of the season with a win on Sunday. ... Mariners prospect Abe Almonte hit for the cycle on Saturday night for Double-A Jackson. He's the second Seattle minor-leaguer to hit for the cycle in the last two weeks, joining Carlos Trunifel, who did it for Triple-A Tacoma on April 17.