The Angels squandered chances in the late innings, leaving five men on base in the last six frames, during which their leadoff hitter reached five times but the team managed only two runs.
"I thought we pressured guys, got some guys in scoring position, couldn't get that one hit, which could have swung the game in our favor," Angels manager Mike Scioscia said.
The Mariners, meanwhile, struck for two runs in the top of the 12th inning off left-hander Joe Thatcher and survived a David Freese solo home run in the bottom of the frame to snap the Angels' six-game winning streak.
Seattle (52-45) won just its third game in its last eight tries. Los Angeles (58-38) lost its first game against a division opponent since June 11, a franchise-record streak of 12 games. In the last two nights, Seattle and Los Angeles have played 28 innings and combined for 10 runs in over 10 hours.
The game turned into the second consecutive battle of the bullpens after the Angels' Garrett Richards and Seattle's Felix Hernandez combined to give up just five hits across 15 innings. Both exited after allowing only one run.
"It's good to see our guys throw the ball as well as they did," Scioscia said. "I thought Garrett did a tremendous job to match Felix Hernandez pitch-for-pitch and we definitely had our opportunities. We just couldn't push one across to get the win."
On Friday, the Angels bullpen tossed 10 scoreless innings of relief and on Saturday were again asked to rescue a quiet Halo offense. But this time, the Mariners spoiled the 'pen's heroics.
Kyle Seager led off the 12th with an opposite-field double to left-center and Logan Morrison followed suit with a two-bagger down the left-field line. Morrison poked a 1-1 cutter from Thatcher over a leaping Freese at third base to give the Mariners the late lead. Seattle added an insurance run on Justin Smoak's pinch-hit RBI infield single.
The game was Thatcher's fifth appearance for the Angels since being acquired from Arizona and the two runs marked the first ones he's given up since June 22. Despite Thatcher's performance Saturday, the Angels bullpen has still been stellar recently. Over their last 19 games, Angels relievers have a 1.63 ERA.
"When he hits spots, he's really tough," Scioscia said. "Tonight, he missed some spots. … Tonight, just a couple pitches got away from him."
Not many pitches got away from Richards and Hernandez.
Hernandez dazzled in seven innings, yielding just one unearned run on two hits and four walks while striking out nine. Only one Angel reached third base in the first six innings.
"I knew it was a tough matchup against Richards," Hernandez said. "He's been hot for a while. I just wanted to go out and compete and make my team win. You've just got to make pitches and try to get people out."
Richards carried a perfect game into the sixth inning before Dustin Ackley roped a double to left-center to break up the bid. Richards exited after eight strong innings surrendering one run on three hits while racking up seven strikeouts.
"I think in the other dugout, they're saying scoring against Garrett is a tough proposition," Scioscia said. "We had two guys pitching extremely well and Garrett got us through eight innings and was perfect through five. Good job for him."
The Mariners only had three at-bats with runners in scoring position against Richards. The Angels' loss was the first in a game Richards has started since May 30.
The Angels had chances in the eighth and 10th innings when John McDonald reached to lead off the inning both times. But Scioscia elected not to have Kole Calhoun lay down a sacrifice bunt and the Angels came up empty-handed both times.
"In that situation whether you want Mike [Trout] to swing the bat or take the bat out of Mike's hands," Scioscia said. "We felt if Kole could roll the ball through the infield there, we're really set up good with Mike and Albert coming up to get one run across."
In the seventh, the Angels scratched out a run thanks to some shaky Seattle defense. Hernandez walked Albert Pujols and Josh Hamilton to start the inning, bringing Kendrick to the plate. Kendrick dribbled a grounder up the middle that looked like a potential double-play ball.
But neither Miller nor Robinson Cano took charge and Miller tried to salvage the play with an out at first. His throw went wide, though, and Pujols came in to tie the game, 1-1.
Neither team scored again until Morrison's double in the 12th.