KANSAS CITY, Mo. -- Danny Duffy almost never missed a game when he was recovering from Tommy John surgery.

Sometimes he'd be watching on TV from Kansas City's spring training complex in Arizona. Other times, he'd be watching on television between rehab starts at some minor league outpost.

He finally made his return on Wednesday night and labored through 3 2/3 innings against the Minnesota Twins. He left with the Royals trailing by a run, but this time had a front-row seat to watch as his scrappy bunch of teammates clawed their way back for a 5-2 victory.

The Royals bullpen held the Twins off the scoreboard the final 5 1/3 innings.

"I'm not satisfied with this at all. It wasn't where I wanted to be today," Duffy said, "but we gutted it out, we got the win and the bullpen was amazing."

Duffy was electric for as long as he was in the game.

He struck out seven with an overpowering fastball that at times reached 97 mph, and then used his changeup to keep the Twins off balance. But he struggled through the same command issues that often plagued him prior to his injury, and needed 93 pitches to last as long as he did.

Once Duffy left the game, Louis Coleman (2-0) and three more Kansas City relievers managed to navigate the next 4 1/3 innings. All-Star closer Greg Holland worked around a single by pinch-hitter Joe Mauer in the ninth to wrap up his 30th save and the series win.

Alex Gordon homered off Samuel Deduno (7-5) to tie the game once Duffy left. Alcides Escobar hit a go-ahead single later in the fourth, Lorenzo Cain hit an RBI single in the fifth, and Gordon drove in another run in the seventh with the 200th double of his career.

Deduno, who hadn't lost in his last four starts, allowed four runs on 12 hits in 5 2/3 innings. He didn't walk a batter for the first time this season.

"He was battling pretty hard and they were shooting balls the other way on him," Twins manager Ron Gardenhire said. "He battled through the best he could."

Minnesota made sure that Duffy would work hard in his first time on a big league mound since May 2012.

Brian Dozier, whose leadoff homer set the tone in a 7-0 win Tuesday night, opened the game with a triple off the young left-hander. Brian Colabello worked a two-out walk before Ryan Doumit delivered an RBI single to give the Twins a 1-0 lead.

Doumit would leave the game in the fourth inning after feeling nauseous, and the Twins said afterward that he would likely land on the seven-day concussion list.

"I felt like mentally in a fog. I was nauseous. I was dizzy," the catcher said. "If you can't concentrate on the pitches you are calling, you shouldn't be back there."

The Royals answered in the third when Brett Hayes, who's filling in at catcher while Salvador Perez is out with his own concussion, lined a double off the third-base bag. Deduno recovered to retire the next two Royals, but Escobar drove in Hayes with a tying single.

The Twins pulled back ahead in the fourth on Dozier's two-out double, but Gordon answered again in the bottom half when he snapped a 1-for-23 skid with his homer. Escobar's run-scoring single later in the inning gave the Royals the lead for good.

Cain's RBI single and Gordon's run-scoring double took some of the pressure off the Royals bullpen, which entered the game with the best ERA in the American League.

Coleman retired five batters to run his streak of scoreless innings to 16 1-3, and Tim Collins struck out the only three he faced. Aaron Crow escaped a jam of his own creation in the seventh, and Kelvin Herrera left runners on second and third to end the eighth.

Holland ensured there would be little drama in the ninth.

Copyright 2013 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.

More From KSOO-AM / ESPN Sioux Falls