Tom Holland fights evil forces that threaten him and his family in the trailer for Netflix film The Devil All The Time.

“Excuse me preacher, you got time for a sinner?” the 24-year-old Spider Man star asks during the tense three-minute teaser.

The Midwestern Gothic tale centres on the town of Knockemstiff, Ohio, where Arvin Russell, played by Holland, fights the evil forces that threaten him and his family.

A cast of sinister characters converge around him, including an unholy preacher (Robert Pattinson), a twisted couple (Jason Clarke and Riley Keough) and a crooked sheriff (Sebastian Stan).

Directed by Antonio Campos, the film spans the time between the Second World War and the Vietnam War.

The Devil All The Time also features Bill Skarsgard, Mia Wasikowska, Harry Melling, Haley Bennett and Pokey LaFarge, and is adapted from Donald Ray Pollock’s novel.

It will launch globally on Netflix on September 16.