The Reds' Jay Bruce belted his first home run, a solo shot to dead center field against left-hander Jonathan Sanchez, in the first inning.
Sanchez, making his second start, was pulled in the third after Drew Stubbs and Chris Valaika opened the inning with singles. Both scored as reliever Everett Teaford gave up singles to Bruce and Todd Frazier. Sanchez was charged with four runs on three hits and two walks.
Reds right-hander Mike Leake also gave up four runs in his three innings. He gave up eight hits, including a two-run single to Johnny Giavotella and run-scoring singles to Jeff Francoeur and Eric Hosmer.
Gordon snapped the 4-4 tie by leading off the Royals' fourth with a home run over the left-field wall against right-hander Nick Christiani. It was his second in Arizona.
A Gold Glove winner last year in left field, Gordon also recorded his first assist. He threw out Bruce at the plate, connecting with catcher Cody Clark, in the third inning. Gordon had 20 assists last season.
Clark replaced Salvador Perez, who left the game after one inning, limping off the field accompanied by a trainer.
Cain led off the Royals' fifth with his first homer, a towering shot off right-hander Sam LeCure that cleared the left-field bullpen.
Up next for Reds: The Reds have a split-squad home doubleheader on Wednesday at Goodyear Ballpark with the Padres playing in an afternoon game and the Dodgers in the nightcap. Reds manager Dusty Baker says that every regular will play with second baseman Brandon Phillips in the first game and first baseman Joey Votto in the second. Cuban left-hander Aroldis Chapman, vying for a slot in the rotation, will make the start against the Padres' Clayton Richard, and Homer Bailey is slated to match up against reigning National League Cy Young winner Clayton Kershaw.
Up next for Royals: It's the first night game this year for the Royals, who'll start Aaron Crow against the Mariners at 9:05 p.m. CT at Peoria, Ariz. Crow, an All-Star reliever as a rookie last year, is trying to win a rotation spot and this is his first start. He pitched two scoreless innings in a previous outing. Felipe Paulino, also in the rotation race, will follow Crow. Among the scheduled relievers are setup men Jonathan Broxton and Greg Holland. The game will be televised by MLB Network and on MLB.TV.
Dick Kaegel is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.