Kansas City, MO (SportsNetwork.com) - Lorenzo Cain stroked a two-run homer as the Kansas City Royals defeated the Colorado Rockies, 5-1, on Tuesday at Kauffman Stadium.
Salvador Perez went 2-for-4 with a solo homer and Alcides Escobar drove in two runs for the Royals, who have won three of their last four.
James Shields (5-3) surrendered just one run five hits with eight strikeouts and no walks across seven strong frames.
"I thought he was phenomenal," Royals manager Ned Yost said of Shields. "He had everything going today."
Nolan Arenado had two hits and Justin Morneau drove in Colorado's lone run. Franklin Morales (3-3) gave up four runs on eight hits with four walks as the Rockies lost their fourth game in their last five.
"(Morales) was working behind most of the night," Rockies manager Walt Weiss said. "You get in bad counts and it's tough to be successful."
Kansas City took an early lead in the second. Johnny Giavotella singled with two outs and Cain walked before Escobar brought Giavotella home with a line- drive single to left.
The Rockies tied the game in the fourth. Troy Tulowitzki and Arenado both singled before Morneau brought Tulowitzki around with a two-out single to right.
Cain gave the Royals the lead back in the home half. Danny Valencia singled to center and two batters later, Cain crushed a fastball over the left-field wall for a 3-1 lead.
Perez tacked on another run to the Royals' lead in the fifth after he stroked a solo shot to left.
Valencia was walked by Nick Masset to lead off the bottom of the eighth and Pedro Ciriaco came in to pinch-run. He moved up to second on Giavotella's ground out and took third on a wild pitch. After Cain walked, Escobar grounded into a force out that scored Ciriaco to make it a 5-1 game.
This was the first matchup since 2011 between the two teams and first in Kansas City since 2010 ... Shields passed the 1,500 career strikeout mark with eight strikeouts ... The Royals are now 5-2 all-time against the Rockies at Kauffman Stadium ... Kansas City placed infielder Omar Infante on the 15-day disabled list prior to the game.