Rockies Royals Baseball (copy)

Kansas City Royals starting pitcher Danny Duffy delivers to a Colorado Rockies batter during the first inning of a baseball game at Kauffman Stadium in Kansas City.

KANSAS CITY — Danny Duffy was not pleased with his bullpen warmup. Once the game started he had no-hit stuff.

Duffy and four relievers combined on a two-hitter, helping the Kansas City Royals hold off the Colorado Rockies 3-2 on Tuesday night.

Duffy took a no-hitter into the sixth inning and retired the first two batters before walking DJ LeMahieu and allowing a homer to Nolan Arenado. The Rockies star third baseman squared up a 1-1 pitch and hit it out for his 28th home run.

"Sometimes when the bullpen is bad, it translates into a really good game," Duffy said. "I wasn't really getting extension very well in the bullpen. I took it right out to the game and sure enough it was pretty solid."

Duffy, 8-8, who was 0-2 with a 6.35 ERA in his first three starts in August, was removed after six innings and 88 pitches. He walked three and struck out seven. Duffy walked Arenado in the first and Trevor Story in the fifth for the only other baserunners he permitted.

"His changeup was actually really good," Arenado said of Duffy. "He got ahead with his off-speed and threw that fastball in once in a while. He just threw everything for a strike and it looked like he bounced it when he wanted to. He was really good today."

Duffy knew he had a no-hitter in place after five innings.

"I knew there was a zero on the board, but I'm not worried about that," Duffy said of throwing a no-hitter. "As long as we come out with a win, I'm good. I think my pitch count might have been too high to keep that thing carrying on, but you never know what could have happened."

Mike Minor replaced Duffy and retired all five batters he faced, striking out three. Peter Moylan got LeMahieu on a grounder to Whit Merrifield to end the eighth.

Kelvin Herrera gave up a triple to Jonathan Lucroy with two outs and walked Carlos Gonzalez and Gerardo Parra. Herrera left with right forearm tightness and a 2-0 count on Pat Valaika. Left-hander Scott Alexander replaced Herrera and retired Valaika on a grounder to shortstop Alcides Escobar. Alexander picked up his first career save on two pitches.

"I didn't want to shy away from the opportunity of the situation," Alexander said. "I just wanted to be aggressive and attack the zone."

Royals manager Ned Yost said they don't know the extent of Herrera's injury until he is checked out further.