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.
A Quiet Place Part II.
Photo: Paramount Pictures
This article is updated frequently as movies leave and enter Netflix. *New additions are indicated with an asterisk.
You want to see something really scary this October? Netflix subscribers have commonly made horror films the most-watched on the streaming service, and the original filmmaking factory at the company keeps churning out new ones in time for Halloween — or picking them up at film festivals. The truth is that the horror section of Netflix’s movie library is one of its deepest catalogs, which can make separating the quality from the junk harder than in some other sections. That’s why we’re here. These are the best horror films on Netflix right now.
How We Pick Our Films
Critic Brian Tallerico watches and writes about movies and TV every day. To curate this list, he dives into Netflix’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.
American Psycho
Year: 2000 Runtime: 1h 41m Director: Mary Harron
Mary Harron’s adaptation of the Bret Easton Ellis novel was instantly controversial but also instantly iconic. Christian Bale stepped into the role of the serial killer that had caused an uproar in the literary world and redefined the way we see psychopaths in cinema. His performance has been mimicked so many times just in the two decades since this unforgettable film was released.
Year: 2014 Runtime: 1h 38m Director: John R. Leonetti
The universe of The Conjuring got its first spin-off in this unpacking of the tale of Annabelle, a doll being held in the haunted objects chamber of Ed and Lorraine Warren in those films. The origin story of the haunted doll stars Annabelle Wallis, Ward Horton, and Alfre Woodard. It’s not great — the sequels are actually better — but it’s essential to the overall story of this wildly successful horror universe.
Did you know the director of The Raid (and its awesome sequel) has also directed a kick-ass Netflix Original horror movie? Released in 2018, Apostle stars the great Dan Stevens (The Guest) as a man who journeys to a Welsh island in search of his missing sister and finds a community that’s not exactly welcoming. Kind of written off as a riff on The Wicker Man, this is a wicked little movie, elevated greatly by a fantastic performance from Michael Sheen.
Year: 2014 Runtime: 1h 33m Director: Jennifer Kent
One of the best horror films of the 2010s has not always been widely available for streaming subscribers so take the chance to watch it again while it’s on Netflix. Jennifer Kent’s directorial debut centers on a mother (Essie Davis) who struggles to raise her problem child alone after the death of her husband. Oh, and there’s also a real monster in the boy’s room.
Year: 2022 Runtime: 1h 40m Director: Luis Javier Henaine
DisappearCompletely one rocks, and you probably haven’t even heard of it. This Mexican horror film is the story of Santiago, a photographer who will do whatever it takes to get the story. After one particularly gross assignment, he’s cursed, leading him to lose each of his five senses, one by one. It’s kind of like Serpent and the Rainbow meets Nightcrawler.
Rebooting the Evil Dead series for the second time (after the successful 2013 iteration), Lee Cronin’s film moves the action to an L.A. apartment building where a single mother (the phenomenal Alyssa Sutherland) gets taken over by the same evil force that once terrorized poor Ash. Twisted and clever, Evil Dead Rise is a gruesome horror flick that was so successful that it feels like a sixth film in the series won’t take a decade to rise from the dead.
Remember how much this took over the horror world in Summer 2021? Based on the books by R.L. Stine, these three films told the story of a curse that had descended on a small town and unfolded across three films set in different eras — 1994, 1978, and 1666. Fans argued over which one was the best (1994), but it’s best to appreciate these now as one piece of sharply-written horror entertainment. And a couple of the most talented Stranger Things stars (Sadie Sink and Maya Hawke) help too.
Year: 2017 Runtime: 1h 43m Director: Mike Flanagan
Before he helmed The Haunting of Hill House, Mike Flanagan co-wrote and directed one of the best Netflix Original horror films in this adaptation of Stephen King’s 1992 novel of the same name. Carla Gugino is phenomenal as a woman who gets handcuffed to her bed by her toxic husband…and then he has a heart attack. As she tries to figure out how she will survive, she accesses the trauma of her past.
What if it’s not houses that are haunted but people? That’s the question at the core of this story of an immigrant couple (a fantastic Wunmi Mosaku and Sope Dirisu) from South Sudan who move to an English town and face enemies both outside of their new home and within it. This is a strikingly original horror flick that has been largely underrated. Don’t miss it.
Year: 1975 Runtime: 2h 3m Director: Steven Spielberg
The movie that ushered in the blockbuster era is often viewed more in terms of how it changed the industry than the fact that it’s, well, perfect. Seriously, you don’t need to change a single frame, line reading, or edit in Jaws, a film that works to raise tension from its very first scene. There’s a reason people are still writing books about Jaws. And they will be for a very long time.
Year: 2016 Runtime: 1h 39m Director: Mike Flanagan
Sequels to mediocre horror films aren’t traditionally any good. Every rule has an exception. The director of Gerald’s Game helmed this fantastic prequel about a couple who have a phony séance business. Their lives are turned upside down when they bring a Ouija board into their act, unknowingly unleashing a spirit that possesses their daughter. Smart and tightly made, it was a sign of things to come from the future Hill House creator.
Year: 2019 Runtime: 1h 30m Director: Richard Shepard
Girls and Get Out star Allison Williams stars in this twisting and turning tale of a talented young musician who travels to Shanghai where she meets a competitor named Lizzie, played by Logan Browning. A story that keeps shifting and changing ultimately arrives at a shocking conclusion in this Netflix Original that took the festival scene by storm in 2018 and 2019.
Sometimes the only thing a fun horror movie needs is a clever concept. This one is undeniably that. This Spanish film takes place in a “Vertical Self-Management Center,” a prison with dozens of floors to house its inmates. For sustenance, a platform descends the center of the tower. People near the top get much more than those at the bottom, which is kind of like a symbol for, well, everything. Unpredictable and tense, this is one of the best Netflix Original horror flicks.
Listen, this is no masterpiece, but there’s something fascinating about seeing an Oscar winner like Russell Crowe commit so completely to a B-movie this ludicrous. Crowe is all-in as the infamous Father Gabriele Amorth, a purported real-life exorcist who tries to save a possessed boy in Spain. This is a defiantly goofy movie, but it’s better than its quick theatrical run would have you believe, and a great fit for the Netflix horror roster of movies you can watch while you do something on your phone.
Year: 1960 Runtime: 1h 48m Director: Alfred Hitchcock
Often on lists of the best movies ever made, Alfred Hitchcock’s thriller undeniably changed the genre forever. With its drastic POV shift and stunning mid-film murder, no one had ever seen a movie that played with structure like Psycho before. It’s still a riveting piece of work, a movie in which one can find new tricks and joys with every single viewing.
Year: 2021 Runtime: 1h 38m Director: John Krasinski
It was a good year for the growing Quiet Place franchise with the well-received Day One and even a video game (The Road Ahead), but Netflix only has the second film in this growing franchise. This one brings Emily Blunt, Millicent Simmonds, and Noah Jupe back as they leave the family home and try to find new safety and community. It’s a very different film from the other two, but it has its ardent supporters, who can now watch it on Netflix.
A Quiet Place Part II
*Scream (2022)
Year: 2022 Runtime: 1h 55m Director: Matt Bettinelli-Olpin, Tyler Gillett
Eleven years after the last Wes Craven film, the saga of Ghostface was resurrected by Paramount in a film that was exclusively on their streamer for a couple years before now escaping to Netflix. Is it as good as the original? Not even close. But it’s fun to see characters like Sydney, Dewey, and Gale again, and the young cast clicks too, especially Kyle Gallner, Melissa Barrera, Mikey Madison, and Jenna Ortega.
The famous horror director went full slasher with this adaptation of his trailer from the 2007 film Grindhouse into a full, grisly feature. It starts with a Black Friday sale that becomes a bloodbath, leading to a series of violent murders on the one-year anniversary of the chaos, committed by a man in a John Carver mask. Obviously inspired by grindhouse horror of the ‘70s and ‘80s, it’s a reminder that sometimes horror is better when it’s more fun than “elevated.”
The Iranian-born Anvari wrote and directed this brilliant interplay of horror tropes and commentary on how war and violence can shatter the world more than a ghost could ever consider. A mother and daughter are haunted in 1980s Tehran during the historical War of the Cities. If the falling bombs won’t get them, something more supernatural might.
Na Hong-jin’s 2016 film is not one you should pick to watch casually for date night. It takes a commitment over 150 minutes, but it’s worth every minute. There’s a cumulative power to this story of a policeman who investigates a strange series of events in a small town and basically discovers ancient evil, an epic tale that rewards your commitment with a final act that’s devastating and unforgettable.
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();
// ]]