ByBrian Tallerico,
a film critic with over 20 years of experience covering movies and TV.He is the president of the Chicago Film Critics Association, the co-producer of the Chicago Critics Film Festival, and managing editor of RogerEbert.com.
This list is regularly updated as movies rotate on and off of PrimeVideo. *New additions are indicated with an asterisk.
Who wants to be scared tonight? While there are fantastic streaming services dedicated to horror nuts, there’s also a wealth of genre hits and indie darlings on Prime Video. In fact, they have one of the most diverse arrays of horror hits, including films by vets like David Cronenberg and Paul W.S. Anderson, alongside newer films from indie studios. This regularly updated list will keep Prime Video subscribers in the know on what are the best horror movies they can watch right now. Turn the lights off and lock the doors.
How We Pick Our Films
Critic Brian Tallerico watches and writes about movies and TV every day. To curate this list, he dives into Amazon Prime Video’s catalogue every month to surface terrifying horror titles — using his taste and a lifetime of cinema study as his guide, instead of whatever the algorithm happens to be pushing. After triple-checking to make sure they’re still available, he watches each and writes his recommendation. We highlight more than just the crowdpleasers: Filmmakers can use horror to craft spine-tingling moods, keep audiences on their toes, and comment on culture. Read on to find something to watch.
*An American Werewolf in London
Year: 1981 Runtime: 1h 37m Director: John Landis
John Landis is widely recognized as a comedy guy because of films like Animal House and The Blues Brothers, but he also pioneered horror with projects like Michael Jackson’s “Thriller” video and this make-up masterpiece, a movie that holds up today because of its emphasis on incredible practical effects. David Naughton and Griffin Dunne play a pair of American backpackers who travel to England and discover that werewolves are very real. The original tagline: “From the director of Animal House…A different kind of animal.”
Too many people easily dismissed the Nia DaCosta remake of the 1992 classic about a boogeyman who terrorizes a Chicago community. Yes, it’s imperfect in its messaging, but it’s a spectacularly well-made film, including some excellent sound design and chilling compositions. Yahya Abdul-Mateen II stars in this film that was co-written by the insanely talented Jordan Peele.
An independent filmmaker who had made his career doing industry safety videos just happened to direct one of the most essential horror flicks of all time in this absolute classic. Candace Hilligoss stars as Mary Henry, a woman who barely survives a car accident and starts seeing ghostly, zombie-like figures in the new city she’s trying to call home. As the figures draw her to an abandoned carnival, some of the best horror imagery of the 1960s surfaces in a film that didn’t get much attention on its release but has gone on to be recognized as a genre masterpiece.
Year: 2015 Runtime: 1h 58m Director: Guillermo del Toro
Everyone seems to love the director of Pan’s Labyrinth and The Shape of Water, but this gothic romantic horror flick often falls through the cracks when people talk about Guillermo del Toro. It shouldn’t. It’s a masterfully made period piece with sumptuous details and perfectly calibrated storytelling. Mia Wasikowska plays a woman who moves to a remote mansion with her new husband (Tom Hiddleston) and his sister (Jessica Chastain) and discovers the secrets buried in the earth.
Year: 2004 Runtime: 1h 38m Director: Neil Marshall
The claustrophobic need not apply to Neil Marshall’s breakthrough film, a movie wherein if the tight spaces won’t kill you then the monsters will. This smash hit tells the tale of six women who navigate an increasingly dangerous cave system only to find that there are things living underground that aren’t taught in most biology classes. It’s one of the most popular and influential horror films of its era.
Almost four decades after Stanley Kubrick’s The Shining, Mike Flanagan (The Haunting of Hill House) adapted the sequel by Stephen King with what felt like mixed results. However, in just the few years since this movie came out, it feels like the cult following has grown. It’s a stylish drama that kind of falls apart in the final act, but has enough good stuff before that to recommend a look. (Note: This is the lengthy director’s cut, which may not be “better” but isn’t readily available on streaming so take the chance while you can.)
Year: 2015 Runtime: 1h 23m Director: Stephen Cognetti
We’re all tired of found footage movies but this flick can be one of the exceptions. So popular that it spawned a franchise (there have already been two sequels), this is the story of a documentary crew that captures the creation of a Halloween haunted house that becomes all too real, ultimately killing 15 ticket buyers and staff. Structured both in a “what happened that night” and in-the-moment found footage doc, this is a truly clever indie horror film.
The horror author Clive Barker directed this adaptation of his own novella The Hellbound Heart and made genre movie history. Introducing the world to the iconic Pinhead, who would go on to appear in so many sequels, the original film here is still the best, the tale of a puzzle box that basically opens a portal to Hell. The sequels have kind of lost the thread, but the original is still incredibly powerful. It’s one of the few films from the ‘80s that would still shatter audiences if it were released today.
Year: 2015 Runtime: 1h 40m Director: David Robert Mitchell
Horror favorite Maika Monroe stars in this 2014 indie horror breakthrough hit as a young woman who discovers that her recent sexual activity has cursed her with a supernatural force that will chase her until she passes it along to someone else. Stylish and striking, the movie felt like nothing else on the American horror market in 2014, helping usher in the era of what is now called “elevated horror.” Whatever you call it, It Follows is still an unforgettable genre flick.
Adrian Lyne’s horror film has developed an increasingly vocal fan base in the three decades since its release (helped in part by a horrible remake in 2020 that reminded everyone how much better the original was.) Tim Robbins stars as Jacob, a man who starts having increasingly terrifying visions and hallucinations, many of them related to his time in Vietnam. A stunning journey into hell, it’s also an anti-war film that’s given weight by Robbins’s genuine, in-the-moment performance.
Year: 2007 Runtime: 1h 58m Director: Frank Darabont
People typically think of The Shawshank Redemption first when they consider Stephen King adaptations directed by Frank Darabont, but history has slowly elevated this powerful adaptation too. Based on the 1980 novella of the same name, it’s a study of how quickly people can divide themselves when trapped in an unimaginable situation. It’s no wonder the divides of the real world of the 2020s have made this flick as timely as ever.
Year: 1991 Runtime: 1h 53m Director: Jonathan Demme
Movies don’t get much better than Jonathan Demme’s adaptation of Thomas Harris’ chilling thriller about Clarice Starling and Dr. Hannibal Lecter. With career-defining performances from Jodie Foster and Sir Anthony Hopkins, this movie still absolutely slays a quarter-century after it was released. It’s fascinating to see its DNA in so many modern genre films. Nothing about it is dated, which isn’t something that can be said about many films that are over three decades old.
The Luca Guadagnino remake is also on Prime, but the Argento original is the one to watch. One of the most important and influential of all the Giallo films, it stars Jessica Harper as a ballet student who goes overseas to study and discovers that her new school is populated by witches.
Year: 1982 Runtime: 1h 45m Director: John Carpenter
John Carpenter directed one of the greatest horror movies of all time in 1982’s The Thing, a sci-fi masterpiece about a group of American researchers at a remote base in Antarctica when, well, they’re visited by something. The real problem is that their alien visitor can take the form of anyone around them, leading to a great cinematic depiction of paranoia and distrust.
What if Scream and Back to the Future had a baby? It would look a lot like this Prime Original thriller about a young woman (a fun Kiernan Shipka) who travels back in time and joins forces with the teenage version of her mother to stop a serial killer. Quirky and clever, it works as a mystery, slasher film, and an ‘80s comedy.
Yes, the comedian and Police Academy star is also a killer director, including helming one of the best found footage horror movies of all time in this clever werewolf flick. It’s proof of how much can be done with forced POV and killer sound design.
Year: 2016 Runtime: 1h 32m Director: Robert Eggers
Robert Eggers’ Sundance hit is a master class in sound design and limited perspective. Using testimony from the Salem Witch Trials, the concept of Eggers’ script is beautifully simple – what if one of those trials was about a legitimate witch? The sound of branches hitting each other from the wind, the sound of footsteps on the leafy ground: This is a movie that understands that horror is often sensory more than purely conveyed through storytelling.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]