Hornaday, the defending series champion driving the No. 2 Chevrolet for Kevin Harvick Inc., led 113 of the 160 laps on the 1.25-mile Gateway International oval.
Benson has a 94-point lead over Hornaday, also the 1996 and 1998 series champion, in the season standings.
It was Hornaday's first win at Gateway in six starts. He started second and immediately showed his strength, leading the opening 21 laps.
"Finally, here!" Hornaday said. "It's cool. I drove my guts out. It's not what we wanted on Johnny. We needed a little more. I had a lot of fun and this is what the championship is all about."
Hornaday was the leader when a caution came out before the final pit stops for the lead-lap trucks on the 104th lap. Crew chief Rick Ren decided to take four tires, and Hornaday restarted sixth. The trucks in front of Hornaday either took two or no tires.
Benson restarted with the lead, followed by Setzer. Both drivers took right-side tires.
Hornaday made it look easy driving back to the front, leading the final 30 laps. He pulled away from Setzer's Dodge on the final restart with 11 to go and was never threatened.
"It was a great call by Rick putting on four tires," Hornaday said.
Marc Davis, driving a Chevrolet for Randy Moss Motorsports, was 16th in his first CTS race. He's 18.