Photo-Illustration: by The Cut; Photos: Everett Collection, Netflix
It’s widely frowned upon to be horny on main. But to be horny in the privacy of your own home is a different story. We all need to be seduced by cinema every once in a while, especially when it starts getting cold outside and all you want to do is wrap yourself in a cozy blanket in front of the TV — or in the arms of your post-cuffing-season lover. Whether you’re looking for a movie that is mostly sex scenes and no substance or more of a plot-intensive slow burn, we’ve got you covered; below, we’ve rounded up 25 of Netflix’s sexiest offerings.
If you didn’t realize finance could be sexy until you binged all of Industry, consider yourself lucky that Fair Play is on Netflix. Set in the New York financial world, the film follows a freshly engaged couple, played by Phoebe Dynevor and Alden Ehrenreich, who are pushed to their limits when one gets a coveted promotion at the hedge fund where they both work. Tense is definitely an understatement here.
This steamy Spanish-language romance may not have much plot, but it does have long, meaningful stares and excessive thigh grabbing (if there is such a thing). It’s a classic neighbors-to-enemies-to-lovers story: When Raquel’s extremely wealthy and extremely hot next-door-neighbor, Ares, inexplicably steals her Wi-Fi password because his own network doesn’t reach his bedroom, he discovers a trove of evidence of her obsession with him: photos, Google searches, fan fic (she’s a writer, of course). Don’t trouble yourself with the knowledge that this guy can definitely afford a Wi-Fi extender. Just enjoy their aggressively horny dynamic.
When a woman goes on vacation in Sicily to try to save her marriage, the last thing she expects is to be kidnapped by an equally hot Sicilian Mafia leader who gives her a whole year to fall in love with him. While the plot remains iffy at best, there are so many sexy scenes in this movie that it feels almost too good to be true. If you find yourself wanting more, you’re in luck: There’s a sequel!
A little revenge fantasy meets movie-makeover montage: Burning Betrayal, an adaptation of the similarly titled novel by Sue Hecker, follows an accountant (an accountant!) named Babi who is happily engaged — until she becomes unhappily single upon finding out at her bachelorette party that her fiancé has been cheating on her. So she reacts rationally: She dyes her hair, buys a motorcycle, and starts living out the steamy scenes she has been daydreaming about.
After a year of blissful coupledom and, um, 132 faked orgasms, the star couple in this Dutch dramedy try something different to improve their bedroom life: communication! Just kidding. Luna (Gaite Jansen) feels too awkward or bad or something to confess to Mink (Martijn Lakemeier) that she’s sexually dissatisfied. So she proposes they have a threesome instead. You can probably figure out what happens next.
For all our fellow Emma Corrin stans, they star here as a married aristocrat who strikes up a sweltering affair with her gamekeeper (Jack O’Connell). This adaptation of the D.H. Lawrence novel is perfect viewing for anyone who’s a fan of English-countryside sex scenes.
This Dutch Netflix original film is a sequel to the crowdfunded two-season Dutch web series of the same name, and the movie follows the main character, Anne, as the reasonably happy, delightfully queer life in Amsterdam that the show left her with starts to unravel. From her relationship to the novel she’s writing, it’s a damn mess. What’s not a mess are the excellent sex scenes throughout the film as she gets introduced to drag and starts to find herself. It’s ultimately a very sweet movie with plenty of enticing moments.
This French flick centers on three women in their 40s who meet a group of young men at a sailing club while on vacation. The men are quite excited at the prospect of hanging out with the older women, and their age gaps prove thrillingly complex.
In this Swedish film, career-oriented Hanna is dumped before her 40th birthday, which sends her into a tailspin of life reassessment and — a silver lining — better sex. With partners and, of course, by herself.
This collection of four short films from prominent Indian directors includes tales of intimacy, sex, and the complexities of love. From a passionate affair gone sour to the discovery of self-pleasure, the stories all focus on the point of view of Indian women in the realm of love and sex.
Our titular protagonist runs a brothel — in 1960s Paris, specifically — so yeah, there’s a lot of sex. But there’s also betrayal, espionage, and many, many cigarettes.
This tension-packed period flick follows Elisa Sánchez Loriga as she masquerades as a man in order to be with the woman she loves. Set in Spain in 1901, this is the perfect choice for those wanting a dash of passion, sex, yearning, and historical fiction.
The second movie adapted from Anna Todd’s popular YA romance series, After We Collided tracks Hardin Scott and Tessa Young after the end of their relationship. The two still find themselves entangled with each other despite their attempts to move on with other people, places, and professional obligations.
Two women, played by Alia Shawkat and Laia Costa, connect and strike up some immediate sexual and romantic chemistry, then decide to go on an epic 24-hour date.
Two co-workers enter into a contractual BDSM relationship in this South Korean rom-com. It’s sweet, frothy, and full of wholesome kink (and plenty of wax play!).
Fans of thrillers and horror movies might love Cam for a hot, suspenseful, and unnerving experience. In it, a cam girl discovers that a doppelgänger has taken over her account; she must track down the perpetrator and reclaim her identity and her growing fan base.
Hit Man is not your average action movie. It stars Glen Powell as a professor turned undercover cop. His character, Gary, is more of a gentle soul than a hardened soldier. But the romance between Gary and Madison, played by Adria Arjona, is really what makes this movie worth watching; I can almost guarantee that their electric chemistry will have you feeling hot and bothered.
Do you consider terrifying, mysterious, death-defying things sexy? Well, what could be sexier than free-diving into the abyss that is the ocean? If your interest is piqued, watch this French drama about one woman’s passionate affair with a champion free-diver and the high-risk sport he introduces her to. If you tend to get seasick, maybe skip this one.
Despite not having a ton of sex scenes, A Simple Favor is the ultimate sexy thriller. It’s got everything: murder, incest, a homoerotic friendship, cheating with said friend’s husband, a mysterious disappearance … not in that order.
In this steamy thriller, Tyler and his girlfriend are the perfect high-school couple until one fateful night at a party when they fight and break up. He takes home a girl named Holly (played by Bella Thorne) and spends a passionate weekend with her before returning to school and making up with his girlfriend. When Holly shows up pretending to be a new student, all hell breaks loose.
A former singer grappling with the end of her career, Martina has lost touch with her sensual self — that is, until she meets a handsome young couple who remind her of her once-robust libido. So begins a journey that leads her to Chile and a better understanding of her sexuality.
Successful married thriller author Mary Morrison (Kristin Davis) decides to hire a nanny (Greer Grammer) to help take care of her kids while she writes her next book, but things get complicated when Mary can’t stop fantasizing about her. Sure to please anyone who can’t get enough of the sexy-thriller genre.
23.
Untamed Royals (2024)
Photo: Lexy Steel/Netflix
This Mexican thriller follows a group of impossibly wealthy teens whose lifelong lack of consequences motivate them to cause real tragedy. The sex scenes are plentiful, though they’re more of the “dark and twisted” variety that might have you questioning your own proclivities.
Clocking in at two hours and 22 minutes, this Thelma and Louise–style odyssey is not for the faint of heart. It is, however, for the lesbian yearners among us.
True to its title, this ’90s comedy puts forward a clumsy, fumbling sexiness reminiscent of puberty. But at its core, it’s about two people seeing one another fully and allowing themselves to be truly vulnerable in the name of love and authenticity. What’s sexier than that?
Additional reporting by Jordan Larson, Brooke LaMantia, and Katja Vujić.
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()}});
}, {"3":3,"6":6,"17":17,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(17),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(3),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 i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.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()||auth.isMobileAppRequest())&&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;
}, {"3":3,"4":4,"17":17,"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();
// ]]