Duffy threw all four of his pitches -- fastball, curveball, slider, changeup -- and totaled about 60 tosses in the workout.
"It was very good -- mixed in a couple slidesteps, had some guys off balance," Duffy said. "Gio [Johnny Giavotella] squared one off on me, but other than that, I felt real good.
"In a [real] game, the hitters would be a lot more aggressive. A couple guys didn't swing once. But that's why you need to pound the zone. It was nice. After the first inning, I really locked in and felt like it was a game situation."
Duffy has missed three starts, including the one in New York in which he left after just one pitch because of shoulder inflammation. Right-hander Liam Hendricks replaced him that day, and he also started against Boston last Thursday and against Chicago on Tuesday night.
For Duffy's outing on Tuesday, he sat down for five minutes between innings to simulate a normal game.
"He threw good -- really good stuff," manager Ned Yost said. "Threw some good curveballs, some good changeups, good fastballs. Just erratic with his command. He'll have another side session to iron it out and be ready to go against Cleveland."
Duffy would be set up for two more regular-season starts.
"It came out better today than it has in the last month or so," he said. "So I'm really happy where I'm at now, and I'm very glad that we have the training staff that we do. I'm itching to get back out there and get going."
Dick Kaegel is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.