DENVER – Matt McBride hit his first career grand slam and Jorge De La Rosa pitched eight crisp innings, helping the Colorado Rockies cool off the Kansas City Royals with a 5-2 win on Wednesday night.

The loss trims the Royals’ lead to one game over Detroit in the AL Central.

Danny Duffy (8-11) was cruising along with a 2-1 lead until a two-out error by third baseman Christian Colon in the sixth opened the door for a big inning. McBride lined a fastball from Duffy into the left-field bleachers and then zipped around the bases in exhilaration.

It was McBride’s first homer since Sept. 25, 2012, and third of his career. He was called up from Triple-A Colorado Springs the day before.

De La Rosa (13-8) allowed five hits and two run against his former team. He also got the Royals to hit into four double plays, tying a franchise record for most by a single pitcher in a game.

LaTroy Hawkins pitched a perfect ninth for his 19th save in 20 chances.

Duffy was in command most of the night as he allowed five hits and five runs, one earned, in seven innings.

After getting two quick outs in the sixth, Colon fielded a grounder and threw a one-hopper that first baseman Billy Butler couldn’t scoop.

Wilin Rosario singled and Corey Dickerson drew a walk to set the stage for McBride.

Another hard-luck loss for Duffy, who’s the only AL pitcher with a losing record and an ERA under three runs.

This was just the second time De La Rosa faced his old team. He spent two seasons with the Royals before being dealt to Colorado in 2008 for cash considerations.

He was cashing in on his slider and changeup to get out of one jam after another.

De La Rosa’s only mistake was in the second when he grooved a 91-mph fastball that Alex Gordon hit into the right-field bleachers.

Erik Kratz brought in another run on a sacrifice fly in the fourth that scored Josh Willingham, who led off the inning with a double.