After Gordon's RBI double tied the game 3-3 in the fourth inning, Giavotella followed with a go-ahead single, sparking the Royals to a win in the rubber match of their three-game set.
Brayan Pena went 3-for-5 with an RBI as Kansas City won for the fourth time in six games at Progressive Field this season, as well as their fourth in five contests overall.
Bruce Chen (4-5) managed to hold the Tribe in check on three runs over five innings despite issuing seven hits and walking a pair of batters. The left-hander struck out three.
Four Royals relievers combined to toss four scoreless frames the rest of the way, with Jonathan Broxton racking up his 11th save.
Cleveland starter Jeanmar Gomez (3-4) was roughed up for five runs on 10 hits over a five-inning stint.
Michael Brantley went 2-for-4 with a run scored for the Tribe, who fell for the fifth time in six games.