Marlin led all 35 laps of the charity race and beat Rusty Wallace and 70-year-old L.D. Ottinger to the finish line. Terry Labonte was fourth and Jimmy Spencer fifth.
Marlin collected $25,000 with the win to donate to charity. He also will race in the Sprint Cup Series event Sunday.
The event teamed past winners at Bristol with a "celebrity." The celebrities ran an earlier heat race that set the starting field for the main event.
Marlin's partner was ESPN analyst and former crew chief Andy Petree, who won his heat to give Marlin the pole.
Philadelphia Eagles kicker David Akers won his heat to give Harry Gant an upfront starting spot, but Gant had early car damage and ran most of the race without a hood on his car.
Wallace was teamed with Ray Evernham, who wrecked when he spun trying to pass Petree in their heat.
Other former NASCAR greats in the race were Cale Yarborough and Junior Johnson.