Escobar had provided a 4-0 lead for the Royals in the second with his first career home run off starter Roenis Elias.
But the Mariners rallied behind Dustin Ackley’s two homers and Kyle Seager’s one to take a 7-5 lead in the fifth.
Kansas City took a 9-7 lead in the seventh, scoring four runs off reliever Danny Farquhar, highlighted by Giavotella’s three-run blast over the left-field wall.
Entering the game, the Royals had hit just 14 home runs, lowest in baseball. But seven of their nine runs scored via the long ball.
Louis Coleman, who worked a scoreless sixth, earned the victory.
Greg Holland came on in the ninth to pick up his ninth save in 10 opportunities.
The Royals go 4-3 on their west coast trip, splitting their four games in Seattle.
After an off day, Kansas City will host the Colorado Rockies for a quick two-game series starting Tuesday night at 7:10pm. Coverage begins at 6:30 on NewsRadio 1350 KMAN from the Royals Radio Network.