James Shields cooled down hot-hitting Colorado over seven sharp innings, Lorenzo Cain and Salvador Perez both homered and the Kansas City Royals beat the Rockies 5-1 on Tuesday night.
The only run Shields allowed came on an RBI single by Justin Morneau in the fourth inning. Shields (5-3) followed it up by retiring the final 10 batters he faced, striking out the side in the sixth inning and fanning Troy Tulowitzki for the 1,500th strikeout of his career.
Alcides Escobar added a pair of RBIs, and relievers Wade Davis and Aaron Crow wrapped up the win for the Royals, who were opening a nine-game homestand -- their longest so far this season.
Franklin Morales (3-3) gave up four of the five runs for the Rockies. He allowed eight hits and four walks without a strikeout in five innings, needing 99 pitches just to get that far.