ByWill Leitch,
a contributing editor covering sports and film at New York since 2008and the author of six books, including the novels 'How Lucky' and 'The Time Has Come.'
“A mesmerizing newcomer.” That’s what Roger Ebert called Ray Liotta after seeing him in Jonathan Demme’s 1986 film Something Wild, and even though that was in fact Liotta’s first movie, it seems bizarre to ever think of him as a “newcomer,” doesn’t it? Ray Liotta was a live wire in movies for so long that it feels like he was always there, providing an electric jolt every time he came onscreen. It’s strange to think of movies without him.
In the wake of Liotta’s death on Thursday at the age of 67, here’s a look at his ten most essential performances.
Something Wild (1986)
Ray Sinclair is fresh out of jail, violent, angry, and wants his wife back. He shows up just as we’ve fallen in love both with Melanie Griffith’s Lulu and Jeff Daniels’s Charlie and with the two of them together. It’s as if their insane, incredible attraction needed an equal and opposite reaction in the person of Ray, who will kill them both, or himself, or really anyone. Liotta’s Ray is absolutely magnetic — he was nominated for a Golden Globe for the debut performance — and audiences couldn’t help but wonder, watching it, who the heck was this guy? (Owen Gleiberman said it was like seeing James Dean’s evil twin.) Liotta would become a familiar face on our movie screens soon enough. But here it was as if Jonathan Demme had discovered some primal, feral force. He has given great performances since then, but there never was anything quite like Ray Sinclair again.
The actual Shoeless Joe Jackson was the illiterate son of a South Carolina sharecropper, but in the popular imagination, he’ll always look and talk like Ray Liotta thanks to Liotta’s sensitive, almost fragile performance as the baseball legend. It’s one thing to see how amazed Kevin Costner’s Ray Kinsella is when long-dead baseball players show up in his cornfield; it’s quite another to see how flabbergasted — and, most important, how overjoyed — the actual players are to be there. Liotta understandably had a reputation for playing tough guys, but his Shoeless Joe is wistful, plaintive, and, above all, grateful. Liotta makes you feel how much Shoeless Joe missed baseball … and how thankful he is to have it back.
Scorsese had to fight to cast Liotta, who was still mostly unknown — and, for that matter, in his mid-30s — and thought too green to stand alongside Scorsese titans like Robert DeNiro and Joe Pesci. But that’s, of course, what’s so great about Liotta’s performance: Sure, he’s a mobster and dangerous, but he’s also hardly one of the heavy hitters. If anything, he’s more a witness to the principal players than he is the driver of the action. He’s a mid-level goon who shows us just what being a mid-level goon is … and he’s just screwed up enough to think that’s better than living the rest of his life like a schnook. Liotta never worked with Scorsese again after this movie — to his frustration, reportedly — but what’s special about Henry Hill is that he isn’t special. He’s not a big-time gangster. He is just a schnook. That’s what makes him most terrifying — and most human.
Liotta’s villains were so often complicated and human that it’s weirdly powerful to see him just play a full-on psychopath. He plays Officer Pete Davis, an unbalanced cop who, after being called in to investigate a break-in at the house of a married couple (Kurt Russell and Madeline Stowe), becomes obsessed with the wife and attempts to destroy the husband’s life. The movie isn’t subtle enough to have much new to say about the abuse of police power, but it does have a maniacal Liotta wreaking havoc. Is there anything scarier than being interrupted in bed with your spouse by Ray Liotta in the room saying, “I wanted to check if everything’s okay?” I would argue that there is not.
This lurid, over-the-top, “very much against the spirit of Silence of the Lambs but also fun in its own way” Hannibal Lecter sequel features Liotta as Paul Krendler, a corrupt prosecutor who serves as Clarice Starling’s primary nemesis. Krendler appears briefly in the original but comes alive when Liotta plays him, giving him a slimy loathsomeness that you find yourself wanting to see punished almost as much as you want to see all the serial killers punished. You get the opportunity, vividly, when Lecter feeds Krendler … his own brains. What a way to go. He’s even a jerk while he’s eating his own brain.
Perhaps Liotta’s most underrated performance is that of Oak, the sort of soulless, morally drained cop we’ve seen in countless movies with palpable desperation and loss that is as heartbreaking as it is truly dangerous. Liotta is bulky and bearded here and plays Oak as a man weighed down with all the burdens of the world, none of which hurt him more than the burdens of his own making. Oak is not a good man, but he’s not one without values either. He’s someone who, in his own way, is trying to do the right thing. Not that it does him, or anyone else, any good.
Liotta didn’t do a lot of comedy — looking the way he did, you almost felt scared and sad just glancing at him sometimes — but when he did, it unleashed a certain silliness you could tell was buried down there somewhere. He gets his biggest laughs — in a “comedy” that’s so dark that it doesn’t have a lot of laughs to get — as a police officer called to investigate crimes at a mall who is immediately confronted by Seth Rogen’s mall cop Ronnie. The movie itself is uneasy and often on some pretty problematic footing — Rogen would get better at balancing comedy and sometimes-scary obsession — but Liotta is a riot as a “real” cop who can’t believe this idiotic mall cop keeps showing up and getting in his way.
Andrew Dominik’s financial crisis–set crime drama polarized audiences — it famously got an F from CinemaScore — features a lot of musings on capitalism and an occasional scene of gunfire. Liotta plays Markie, a mid-level mob player who, basically, just gets beaten and shot in a very dramatic fashion to set the movie into motion. Liotta, for all his presence, could occupy these sorts of second-tier gangsters perfectly: He had enough gravitas to take them seriously but enough derangement to make you realize why they’d never reach the top. And ha, wow, this death scene.
Liotta called Noah Baumbach’s script “one of the best he’d ever read,” and it’s a credit to Baumbach that he would even consider Liotta as Jay, Adam Driver’s Charlie’s second divorce lawyer, the absolute killer that Charlie said he didn’t want but ultimately felt like he had no choice but to hire. Liotta is sharp and biting in the role but also funny and light in his own way. He has the look of a guy who has been fighting divorce cases for 30 years. It has taken its toll. Hey, it’s a living.
David Chase’s prequel to The Sopranos has its moments but is ultimately a bit of unnecessary backstory at best and some awkward, sort of sad cosplay at worst. (Why do we need to see John Magaro impersonating Steven Van Zandt again?) But of all the new characters, it’s Liotta who makes the best impression, in a double role no less. He’s terrifying as Hollywood Dick, the father Dickie Moltisanti confronts during the Newark race riots, but he’s even better as his twin brother, Sally, who has spent his life in prison and knows just what crime can do to a man’s soul. Sally is the most powerful character in The Many Saints of Newark, and the movie only really comes to life when he’s onscreen.
The Many Saints of Newark is streaming on HBO Max.
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?
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()}});
}, {"5":5,"6":6,"19":19,"39":39,"45":45}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(19),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(5),appendLandingPageParams=require(144),pageUri=require(134).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()&&e.classList.add("subscribed"),auth.isMobileAppRequest()&&e.classList.add("nymag-app"),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,"5":5,"19":19,"134":134,"144":144}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(231),_each=require(419),Fingerprint2=require(418),DS=require(417),Eventify=require(257);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();
}, {"231":231,"257":257,"417":417,"418":418,"419":419}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(128),_forEach=require(117),_isString=require(279),_intersectionWith=require(420),_isEqual=require(285),_each=require(419),_debounce=require(161),_sortBy=require(215),page=require(134),visit=require(124);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()})}}]);
}, {"117":117,"124":124,"128":128,"134":134,"161":161,"215":215,"279":279,"285":285,"419":419,"420":420}];
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();
// ]]