KANSAS CITY, Mo. — Danny 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.

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.

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 out and walked Carlos Gonzalez and Gerardo Parra. Herrera left with an injury with 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.

Salvador Perez, who had not played since Aug. 4 because of a strain on the right side of his chest, had two hits, including an RBI double in the Royals' two-run fourth inning.

Jon Gray (5-3) gave up three runs, two earned, and six hits over 6 2/3 innings, striking out six and walking one. He dropped to 4-12 in 27 career road starts.

WATCHING THE ECLIPSE

Manager Ned Yost was among the millions watching the eclipse on the Royals' day off. "I'm sure it was a sight to see," Royals manager Ned Yost. "I was in my parking lot with my tailgate down just laying in the back of my truck watching it. It was pretty cool. I enjoyed it."

ROCKIES RECALL TWO

The Rockies recalled OF Raimel Tapia and C Tony Wolters from Triple-A Albuquerque. Tapia hit .287 in 48 games in four previous stints with Colorado. Wolters had a .248 batting average in 67 games with the Rockies before being optioned on Aug. 1 to the Isotopes. OF Mike Tauchman, who hit .182 in 10 games, was optioned to Albuquerque.

TRAINER'S ROOM

Rockies: Parra was a late scratch with a contusion of his right thigh after being hit by a pitch Sunday, but walked as a pinch hitter in the ninth. Tapia replaced him. ... C Ryan Hanigan went on the disabled list with a left groin strain. He hit .250 in 29 starts as catcher.

Royals: The Royals went 6-9 while Perez was out. C Cam Gallagher was optioned to Triple-A Omaha. ... The Royals transferred RHP Miguel Almonte (rotator cuff strain) to the 60-day disabled list.

UP NEXT

Rockies: RHP Antonio Senzatela will make his first start since Aug. 9. His 10 wins are tied for second among big league rookies.

Royals: RHP Ian Kennedy will try to break a franchise-record 15-game home winless drought. He has not won at Kauffman Stadium since Aug. 20, 2016.

___

More AP baseball: https://apnews.com/tag/MLBbaseball