After the second hitter, Kurt Suzuki, singled, Duffy did not surrender another hit until 14 batters later, when Chris Parmelee doubled to right.
"I thought he was really, really good," manager Ned Yost said. "He started to get erratic a little bit in the sixth, got his pitch count up. But the first five innings, man, he was tremendous."
By the time Duffy starting slipping, Kansas City's offense had the game in control.
The Royals got on the board against Twins starter Yohan Pino (0-2) with a double by shortstop Alcides Escobar in the second. Escobar (2-for-4, four RBIs) smacked a long fly to the base of the right-field wall with two outs, scoring Salvador Perez and Mike Moustakas for a two-run lead.
Kansas City extended its lead in the fourth inning. Alex Gordon led off with a double past a diving Parmelee in right and took third on a grounder from Perez. Omar Infante promptly singled to increase the lead to three runs.
But one inning later, the Twins' offense showed some life. The first real threat Duffy faced came in the bottom of the fifth. Parmelee doubled and Eduardo Nunez -- fresh off the disabled list -- immediately singled him in, but Duffy got Sam Fuld and Dozier to pop up and end the inning.
"We had chances," Twins manager Ron Gardenhire said. "Their kid was good. He has a great arm and a great breaking ball. But we had chances even after he left to get us back in the ballgame."
But the chances were not enough -- Perez halted Minnesota's momentum in the sixth inning with a solo shot over Josh Willingham's glove in left field.
"That was huge to get back to that three-run lead," Yost said. "Gives us a little leeway. A little breathing room."
But Duffy started showing some cracks in the bottom of the inning.
After needing only 54 pitches to coast through his first four innings, he needed 42 to get through the next 1 2/3. He opened the sixth by giving up a single to Suzuki, then walked Joe Mauer. Facing two runners with no outs, he retired Willingham and Kendrys Morales before Yost turned to the bullpen.
Duffy said he got away from his mechanics by reaching too far with his plant foot.
"Everything was working early on," Duffy said. "I got into a little trouble. I started throwing the ball uphill in the fifth and sixth innings."
Duffy's departure meant a lengthy -- but ultimately solid -- relief job. Aaron Crow got Trevor Plouffe to pop up to end the sixth inning. Francisley Bueno got into some trouble in the seventh, putting two runners on, but Kelvin Herrera worked out of the jam.
Herrera then put two more runners on in the eighth, but he struck out Morales and Plouffe to end the inning, then Michael Mariot put two on in the ninth before closing the door.
Despite the drama, the bullpen's final line -- 3 1/3 innings, zero runs -- was impressive, considering Wade Davis and Greg Holland didn't even need to touch the field.
"Our bullpen does that," Yost said. "Our bullpen has really good stuff, and they're able to pitch out of trouble. I thought Herrera came in and did a great job."
The win helped Kansas City keep pace with Detroit (which defeated Oakland on Monday) and stay 3 1/2 games out of first place in the American League Central.
The Royals' current nine-game road trip is a bit daunting for a team chasing its division leader, but they are off to a great start thanks to Duffy, who has now given up just seven earned runs in his past 37 1/3 innings.
"His last five, six, seven starts have been really, really good," Yost said. "And that's a big enough sample to say this ain't no fluke."