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 post is updated regularly as movies leave and enter Hulu. *New additions are indicated with an asterisk.
It’s time to have some fun. Let’s put down all the serious, Oscar-winning dramas, leave the documentaries for another day, and forget about that TV season that everyone tells you that you should be watching. There’s a reason that the most successful genre on the home market has been the same for over a generation now: People love action movies. They allow us to escape reality and enter a world where the good guy (usually) wins the day. These are the best action flicks currently on Hulu, updated monthly.
How We Pick Our Films
Critic Brian Tallerico watches and writes about movies and TV every day. To curate this list, he dives into Hulu’s catalogue every month to surface exciting, white-knuckle action 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 thrilling crowdpleasers: Filmmakers use action to punctuate drama, lighten or heighten the mood of a movie, and explosively make an impact on cinema. Read on to find something to watch.
*The Abyss
Year: 1989 Runtime: 2h 20m Director: James Cameron
James Cameron’s sci-fi blockbuster is one of the most prominent films never to have been released on Blu-ray in the United States – but that finally changed in March with the 4K release, and it’s also finally more readily available on streaming too. People who love this movie really love this movie, and it’s great to see it finally coming to the fans who have deserved it for so long.
Year: 1986 Runtime: 2h 17m Director: James Cameron
One of the best action movies ever made, James Cameron’s sequel to the equally excellent Alien reshaped the horror movie aspects of the first film into an action extravaganza. Sigourney Weaver was so good here that she landed an Oscar nomination for Best Actress, which is almost unheard of for action movies.
Year: 2019 Runtime: 2h 3m Director: Robert Rodriguez
Listen, some of this is totally goofy, but it’s always totally goofy in a mesmerizing way. The director of Sin City adapted the hit manga with a lead performance that’s entirely motion-captured through the excellent work of Rosa Salazar. She plays Alita, a cyborg who wakes up in a violent future. It’s eye candy, but it’s pretty sweet.
Here’s some funny trivia: This is actually the highest grossing film of 2020. Now, that’s because it came out just before theaters closed for the rest of the year during the pandemic, but it’s also because people were ready for the return of Will Smith and Martin Lawrence in two of the most beloved roles of their lives. A fourth film has already come and gone. Check out the comeback again.
It feels like this movie was actually a bigger hit on Netflix, where it popped up in the top ten for weeks after it dropped in December 2022. Now it’s Hulu’s turn! It makes sense because it’s the perfect fit for when you’re looking for something to turn your brain off to for a couple hours. Brad Pitt stars as an assassin who ends up on a train filled with fellow assassins, and, well, things get expectedly violent. It’s a goofy movie, but it works well enough at home.
Yes, the script here gets a little clunky and cribs a bit too much from other sci-fi films, but history is going to come around to The Creator for one reason: It looks stunning. It’s not just the blend of tactile cinematography and cutting-edge special effects, it’s the kind of visual language that’s almost always missing from Hollywood blockbusters. Gareth Edwards’ film will find an audience in the future. Get on the bandwagon early.
Year: 2004 Runtime: 2h 4m Director: Roland Emmerich
No one does end of the world like Emmerich, who brought all his big-budget skills to this 2000s blockbuster about the potential end of the road for climate change. Dennis Quaid and Jake Gyllenhaal may star, but the real star of this movie is its special effects budget, one that depicts the kind of catastrophic climate events that seem more frighteningly realistic every day.
Year: 1988 Runtime: 2h 12m Director: John McTiernan
Streamers have a habit of dropping parts of the Bruce Willis series but never the whole thing, until now! Watch from the masterful original through the abysmal A Good Day to Die Hard in one sitting, only on Hulu. The original is still the masterpiece, a film that truly rewrote the rules for the genre, shifting it more to everyman characters like Willis and away from muscular stars like Sly and Ah-nuld. It’s held up perfectly, as entertaining today as when it came out.
How did it take so long for Hollywood to make this one? A clever, enjoyable B-movie, this thriller flick takes the concept of an escape room to extremes, and it ended up making over $150 million worldwide, leading to a 2021 sequel. Taylor Russell and Logan Miller lead a group of people who end up having to survive a series of increasingly dangerous escape rooms.
Year: 1996 Runtime: 2h 25m Director: Roland Emmerich
It’s hard to explain to young people how huge ID4 was when it hit pop culture in 1996. It was quoted all over the place and became one of the biggest films of all time on the back of Will Smith’s charisma and the blow-em-up style of Roland Emmerich. Seeing the White House explode in commercials was too exciting to miss. Some of the film hasn’t held up greatly but it’s still a nice blend of sci-fi concepts and Emmerich’s disaster movie sensibilities.
Paul Walker, Steve Zahn, and Leelee Sobieski star in this tale of a road trip gone very wrong. When they decide to play a prank on a nearby trucker, they discover that the messed with the wrong sociopath, leading to a game of cat-and-mouse across the heartland of the country. Joy Ride is a taut, well-made thriller.
The director of Maze Runner picks up the saga of Planet of the Apes for the start of another planned trilogy of films to continue the brilliance of Rise/Dawn/War. Set a couple centuries after the end of that last trilogy, Kingdom is a world in which different ape factions are fighting for dominance, most of them using the teachings of Caesar as a guide. When a young ape (voiced perfectly by Owen Teague) meets a human (Freya Allen), they discover they may have common goals. This is smart, ambitious blockbuster filmmaking that’s exclusively on Hulu.
Year: 2004 Runtime: 2h 11m Director: Jon Turteltaub
The world of National Treasure got a Disney+ series that didn’t make much noise, but that may be because it didn’t have Nicolas Cage. So how about you watch the original film about Benjamin Franklin Gates (Nicolas Cage), a historian who ends up on his own Indiana Jones adventure when he discovers there’s a map on the back of the Declaration of Independence. (Note: The sequel is on Hulu too.)
The Pirates of the Caribbean: Curse of the Black Pearl
Year: 2003 Runtime: 2h 13m Director: Gore Verbinski
The film that launched a franchise, the first Pirates is arguably still the best of the bunch, introducing the world to Johnny Depp’s unforgettable Jack Sparrow, Keira Knightley’s Elizabeth Swann, Orlando Bloom’s Will Turner, and the vicious Hector Barbossa, played perfectly by Geoffrey Rush. One of the biggest films in Disney history, it’s usually only available on Disney+. Take a ride while it’s escaped to Hulu.
The Pirates of the Caribbean: Curse of the Black Pearl
Year: 1968 Runtime: 1h 52m Director: Franklin J. Schaffner
With the May 2024 release of Kingdom of the Planet of the Apes, this series has found life for the first time in years. Why not go back to where it all began with the Charlton Heston sci-fi flick about an astronaut who lands on a planet run by simians? With one of the most infamous endings of all time, Planet of the Apes became an instant classic, launching a franchise that can be watched in almost all of its entirety on Hulu, including the Tim Burton remake and the newest trilogy.
Year: 2022 Runtime: 1h 40m Director: Dan Trachtenberg
The director of 10 Cloverfield Lane clearly knows how to make unexpected films in hit franchises and that’s exactly what he delivers in one of the biggest original film hits in the history of Hulu. A prequel to Predator, Prey details what happened when the alien killing machine crossed paths with a Comanche woman (Amber Midthunder) three centuries ago.
Any list of the best modern action trilogies really needs to include the rebooted Planet of the Apes series that started with this excellent blockbuster over a decade ago. James Franco plays a man who raises a genetically engineered chimpanzee named Caesar (Andy Serkis, who gives an all-timer mo-cap performance), who starts the revolution of the primates over their human captors. It’s a phenomenal movie, and the saga continues with 2024’s Kingdom of the Planet of the Apes.
Year: 1994 Runtime: 2h 21m Director: James Cameron
Remember when James Cameron made kick-ass action movies that weren’t set on Pandora? Those were the days. Cameron directed Arnold Schwarzenegger in this influential action pic about a family man who also happens to be a G-man. Co-starring Jamie Lee Curtis, Tom Arnold, and Bill Paxton, it’s a perfectly paced film that’s easy to watch over and over again.
Year: 2020 Runtime: 1h 35m Director: William Eubank
Dumped in theaters just before the pandemic broke the industry forever, this underrated thriller has already developed something of a following on VOD and then HBO Max (now Max) before now sliding over to Hulu. Kristen Stewart stars as a worker on an underwater drilling facility who discovers something ancient under the water. Half disaster movie and half monster movie, it’s a lot of fun.
Living legend Viola Davis stars in this retelling of the all-female warriors of the kingdom of Dahomey in the 19th century. She plays General Nansica, who trains young women to follow in her footsteps, and leads a rock star ensemble of future stars that includes Thuso Mbedu, Lashana Lynch, and Sheila Atim. You’ll know all their names soon enough.
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(3),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(136),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,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),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(408),_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,"408":408,"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","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.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();
// ]]