The implosion started when Royals first baseman Eric Hosmer led off the seventh with a ground-rule double against reliever Danny Farquhar. After Billy Butler struck out on a foul tip, Danny Valencia drew a walk. Alex Gordon followed with a walk to load the bases.
Lorenzo Cain cut the lead to 7-6 with a sacrifice fly to center. Two outs.
Then, Johnny Giavotella delivered the proverbial dagger, launching Farquhar's 91 mph cutter into the left-field bullpen.
"I played [against] the guy in college and I kind of knew that he was an ambusher," Farquhar said. "I think I should have been more locked in and executed the pitch a little better."
Farquhar got through the inning but picked up the loss, giving up two hits and four runs. The three-run homer proved the difference on an afternoon where the Mariners committed five errors, but received two solo home runs from Dustin Ackley and a two-run shot from Kyle Seager.
"That's probably a question for the guys in that locker room," manager Lloyd McClendon said. "What I don't do is make excuses for guys so the onus is on the players in the locker room today. If you got a question about errors, go talk to them."
"Sometimes they're as contagious as hitting is," Ackley said, referring to the defensive gaffes. "Anything is contagious but we just got to scratch this one and move on."
It started ugly.
Valencia and Gordon began the second inning with back-to-back singles off Mariners lefty Roenis Elias. The next batter, Cain, grounded sharply to Seager, but the third baseman couldn't field the ball cleanly. The error loaded the bases.
Elias struck out Giavotella for the first out of the inning, but Alcides Escobar followed by hitting Elias' first pitch over the left-field fence for a grand slam that gave the Royals a quick 4-0 lead.
"He jumped on it. That's all there was to it," Elias said through a translator.
Elias rebounded to go five innings, allowing five runs, three earned, on nine hits and a walk. He struck out five while throwing 87 pitches but was lifted after Seattle staked him a 7-5 lead.
"We got to remember this is a young pitcher we have to take care of," McClendon said. "All in all he came out of the game with a lead. We would have liked him to go more but it just wasn't feasible today."
The Mariners responded against Royals starter Jeremy Guthrie in the bottom of the third when Ackley led off with a home run. Stefen Romero was hit by a pitch before Mike Zunino followed with a single. Outfielder James Jones' bunt groundout advanced Zunino to second.
Then, shortstop Brad Miller, who entered the game with a .164 batting average, ripped a one-out, two-RBI double to right field that pulled the score to 4-3.
The Royals added another unearned run in the top of the fourth but in the bottom of the inning the Mariners answered.
Justin Smoak lined a one-out single into right field, then Seager lined a home run over the right-field fence. Ackley then hit his second home run of the day to give the Mariners their first lead of the game at 6-5 and himself the first multi-homer game of his career. He finished 3-for-4 to boost his average to .264. In the past 11 games, he's batting .355 (11-for-31) with three home runs and six RBIs.
"They both felt great," Ackley said of the homers. "The one yesterday felt great so I'm just going to try to keep it rolling."
In the fifth, Corey Hart, using an MLB-approved pink, Mother's Day bat, lined a single back up the middle to score Jones and give Seattle the 7-5 advantage.
But that was the last time the Mariners would score, thanks to a Kansas City bullpen that combined to throw 4 1/3 scoreless innings.
"Listen, we didn't play a very good game," McClendon said. "You can analyze it anyway you want to. I told my team that we didn't play very good. We kicked ourselves in the [butt] today. It's that simple."