Rick Johnson of Battle Creek was driving to Kalamazoo when he slid into the I-94 pile-up.
A truck's flashing lights appeared out of a white, snowy haze and he hit the brakes. His car slid about 34m.
His car stopped before hitting anything, but then he looked in his rearview mirror.
"I saw these trucks just jackknifing, going sideways behind me," Johnson said. "So I kind of went around the truck so I didn't get hit from behind."
Randall Kern was driving behind the truck with the fireworks when he hit the brakes, skidded and stopped his pickup truck on the shoulder.
"I jumped out and I ran away from it because I saw all the trucks coming and they couldn't stop," Kern told the Kalamazoo Gazette.
"I jumped out and ran up through the trees to get away."
Only a few vehicles were involved in what Kalamazoo County Sheriff Richard Fuller said was the first crash in the eastbound lanes about halfway between Battle Creek and Galesburg.
Quickly, vehicles began to pile up in the westbound lanes of the freeway, slamming one after another into vehicles ahead and the median barrier.
Crashed vehicles stretched for hundreds of metres in the westbound lanes.
Two buses took uninjured crash victims from the scene to a school serving as a warming shelter.
Icy roads caused several other accidents in the area, including a 50-vehicle crash about 80km west, in which another person was killed and several injured.