Nori Aoki, Johnny Giavotella and Billy Butler also drove in runs for the Royals, who have struggled to find offense all season. They had only scored more than four runs once in their first seven games, and lost 1-0 to Tampa Bay the previous night.
The Royals went ahead on Butler's RBI groundout and Gordon's run-scoring single in the fourth inning.
Lorenzo Cain singled off Odorizzi to lead off the fifth, Aoki followed two batters later with a triple to right, and the flood gates were open.
Giavotella, recalled from Triple-A Omaha to replace injured second baseman Omar Infante, hit a sacrifice fly to make it 4-1. Hosmer and Butler followed with back-to-back singles, and Gordon popped a pitch to right-center that hung up long enough in the wind to land over the fence.
It was a rough way for Odorizzi to return to Kauffman Stadium, where he made his big league debut with the Royals in 2012. He allowed all seven runs on 10 hits and a walk in five innings.
The Royals squandered a scoring chance with runners on first and second and one out in the second inning when Mike Moustakas struck out and Gordon was thrown out heading to third.
Royals manager Ned Yost trundled onto the field and challenged the call. After a review of 2 minutes, 10 seconds, the ruling made by third base umpire Quinn Wolcott was upheld.
It hardly mattered the way the Royals were swinging - and the way Guthrie was pitching.
The right-hander, who turned 35 on Tuesday, was coming off a rough start against the White Sox. But Guthrie navigated trouble in each of the first three innings, leaving five Rays on base, and then retired his final 12 batters to hand the lead to his bullpen.
Kelvin Herrera gave up two runs in the ninth for Kansas City.
Notes: The Royals activated RHP Louis Coleman (bruised finger) from the DL and optioned RHP Aaron Brooks and LHP Donnie Joseph to Omaha prior to the game. ... Rays 3B Evan Longoria reached base three times. ... The Rays visit Cincinnati for a three-game set this weekend. They've never won at Great American Ball Park. ... Kansas City plays 13 of its next 16 on the road beginning Friday night in Minnesota.