Morales came to the plate with two out against Aaron Crow (7-5) and sent his fourth pitch offering over the center field wall.
"One mistake can hurt you, that's what happened," Crow said. "Obviously I'm not getting the job done, but I still feel capable of being able to do it."
Danny Farquhar made the two-run edge stand by setting down the Royals in order during their final turn, recording his 12th save. It was only the Mariners' fourth win in 13 games.
Jarrod Dyson knocked in two during a four-run fourth for Kansas City, which had a three-game win streak stopped. Starter Ervin Santana lasted only 3 1/3 innings, charged with four runs, seven hits and three walks.
The Seattle bullpen tossed four scoreless innings in relief of starter Taijuan Walker, with Lucas Luetege (1-2) picking up the win with two perfect frames. Walker, making just his second major league start, was in good shape early.
He was nearly flawless over his first three innings -- issuing only a walk -- and the Mariners helped him to a 4-0 lead by the end of their turn in the fourth. However, the young righty saw the advantage completely evaporate in the bottom half of the frame.
The Royals' first three batters of the inning reached against the rookie, with Billy Butler's hit producing a run. Eric Hosmer, who had singled prior, then came in to score two batters later on a Salvador Perez sac fly to make it a two-run game.
David Lough kept the threat going with a double to right that pushed Butler to third. Dyson then plated both runners with a ground ball single up the middle to knot the score at 4-4.
The Mariners struck first with a pair of runs in back-to-back innings. Brad Miller's sac fly and Franklin Gutierrez's ensuing RBI single in third made it 2-0, and the lead doubled in the fourth.
Nick Franklin's bases loaded hit drove in a run and chased Santana from the game. Wade Davis took over and promptly threw a wild pitch to allow another run to come in, but retired Miller and Gutierrez to avoid further damage.
"Luckily we were able to score early," Mariners catcher Mike Zunino said.
The Royals had all four of their hits in the fourth inning ... Morales and Raul Ibanez each had two hits for Seattle ... The Mariners were just 2-for-12 with runners in scoring position ... Walker went five innings and was charged with all four runs.
09/05 01:01:05 ET