April Bloomfield’s classic rib eye at the Breslin.
Photo: Melissa Hom
New York is full of iconic foods, but steak is still the undisputed king. The city has a proud tradition of hulking porterhouses, convivial chophouses, and beef-and-booze-fueled bacchanalia, and a hard-earned reputation as one of the world’s premier steak destinations. And yet, a curious thing has happened over the years. Even as the city’s old-guard steakhouses pack in customers, many — though not all — of the city’s most impressive steaks can now be found at modern restaurants that either update, or completely disregard, the classic steakhouse tropes. What’s important here is the quality of the beef, the skill of the kitchen, and (often) a grand presentation that can leave diners awestruck. The restaurants below are where you’ll find the best steak in New York City.
The Breslin Bar & Dining Room (Midtown West) The Steak: Dry-aged rib eye (market price)
Given April Bloomfield’s legendary status as one of the city’s preeminent meat chefs, it’s no surprise that her kitchen at the Ace Hotel turns out a truly excellent hunk of beef. The rib eye is aged for 50 days and cooked in a ripping-hot pan, to great effect, in its own funky suet. In classic fashion, the final product is served with a classic béarnaise sauce and thrice-cooked chips (a.k.a fries).
Bowery Meat Company (East Village) The Steak: Bowery steak ($57)
The owners of this nouveau chophouse set out with a mission to revamp the staid steakhouse formula. They succeeded with this dish, which employs the hauntingly tasty bit of beef that usually surrounds a traditional rib eye. The strip is favored by steak lovers, but it’s somewhat awkward to serve on its own. Chef Josh Capon solves the problem by rolling and tying the so-called outer deckle into a log and cutting it into steaks, which are seared and served with salsa verde on a moat of buttery pommes purée.
Carbone (West Village) The Steak: Porterhouse ($150)
Major Food Group’s lavish, flashy red-sauce joint is all about theatrics, and even the steak gets its own over-the-top presentation. Order the massive, 60-day-aged porterhouse, and your server will present you with a choice: Because the smaller tenderloin cooks more quickly than the rest of the steak, the kitchen can — if you’d like — remove it and serve it first as a tartare with anchovy aioli, pickled onions, and grilled bread. That’s the appetizer. The rest of the steak arrives, tender and cooked to your liking, later in your meal.
Craft (Flatiron) The Steak: Dry-aged striploin ($120)
Legions of restaurants have imitated celebrity chef Tom Colicchio’s flagship restaurant, which helped set the tone for today’s greenmarket-driven cuisine and is still at the top of its meat game. The 24-ounce steak for two is a truly impressive piece of meat, aged for 55 days and served with both bone marrow and bordelaise, the classically French (and traditionally buttery) wine sauce.
The Dutch (Soho) The Steak: Dry-aged rib eye ($118)
The gorgeous, occasion-appropriate rib eye at Andrew Carmellini’s American brasserie isn’t the most deeply aged steak on this list (it gets a respectable 28 to 30 days in the meat locker), nor is it the most ostentatious in its presentation. Instead, like much of Carmellini’s food, it’s really the Platonic ideal, where all of the little details — the char, the doneness, even the crisp paprika potatoes that come on the side — have been excellently calibrated to give diners an immensely satisfying version of the steak presentation they expect.
East 12 Osteria (East Village) The Steak: Tagliata di manzo ($38)
You’ll find one of the more surprisingly excellent cuts of meat downtown at this rustically posh, under-the-radar restaurant. Made with beef from Red Angus cows, it’s steak done the Italian way: by seasoning it with oil and vinegar, grilling it quickly, and serving it in thick, tender slices. The meat arrives at the table with stewed Sorana beans and, for an extra bit of richness, bone marrow. All that for less than half the price of many of the other steaks on this list.
Estela (Nolita) The Steak: Steak ($37)
The beef dish that Ignacio Mattos serves at his Houston Street hit is not like some hulking steak presentations: It’s light and delicate, just a few slices that satisfy, and won’t require a post-meal nap. The cut itself varies (rib eye has been used; these days, it’s likely either flap or hanger), and so do the umami-heavy accoutrements, which may be mushrooms and taleggio, or anchovies and cabbage gratin. (In Soho, Mattos is also turning out an exceptionally juicy, more traditional rib eye at his new restaurant, Café Altro Paradiso.)
Gallagher’s Steak House (Times Square) The Steak: Prime rib of beef ($47)
Though the décor has been slightly modernized, the resting steaks are still positioned to greet hungry guests and telegraph the message that, yes, this is a classic Manhattan meat palace. All of the steaks are aged on site, and the thick, fatty prime rib is served with nothing more than a pool of its own juices. There’s a small bouquet of greens on the side that most customers could likely just ignore, since that’s definitely not what they came for.
Marea (Midtown West) The Steak: Tagliata ($57 or a $17 supplement on prix fixe)
Steak feels like the wrong order at chef Michael White’s luxurious seafood restaurant. But don’t let that deter you, since the menu’s lone steak option is enough to make the restaurant a bona fide beef destination. The sirloin, hailing from Creekstone Farms and aged for 50 days, is served right off the grill, alongside braised romaine and a small bread salad studded with — what else? — bone marrow. This is how you out-order everyone else who got fish.
Meat Hook Sandwich (Williamsburg) The Steak: Steak night ($15 to $20)
Every Wednesday night, the Meat Hook’s much-loved sandwich shop hosts its very own steak night. The menu and cut of beef change weekly, but you can rest assured that the meat will be of excellent provenance — it’s called the Meat Hook, after all. Along with the meat, guests are also offered rotating hot and cold sides and, most important, bodega-cheap $1 beer. In other words, it’s the Williamsburg version of a beefsteak dinner.
Minetta Tavern (Greenwich Village) The Steak: Côte de beouf ($148)
Keith McNally’s restaurants all tend to make beef a top priority, and this revamped Village tavern is the ultimate expression of that ethos. There is the famed Black Label Burger, of course, as well as several other noteworthy steak offerings. But the centerpiece of the entire menu, and the thing you really want, is this 60-day dry-aged monster, suggested for two but hefty enough to serve four without much trouble, grilled on the bone until the outside develops a tremendous, pepper-heavy crust, and served with entire lengths of roasted marrow bone. (And, it’s important to note, McNally’s Bowery restaurant, Cherche Midi, also excels in the meat department, serving a well-marbled, delicately gamey dry-aged prime rib, which comes with cider-braised onions and golden, airy pommes soufflés.)
Strip House (West Village) The Steak: Bone-in rib eye ($58)
The downtown location of this cheeky, throwback spot knows its way around meat. The sides lean toward the innovative, including things like goose-fat potatoes and cider-glazed scallops, but the steaks are pure classics. Go for the bone-in rib eye, 20 ounces of tender, juicy meat that has a well-burnished crust and lots of tasty fat. There is, as New York restaurant critic Adam Platt is fond of saying, nothing not to like about that.
St. Anselm (Williamsburg) The Steak: Butcher’s steak ($19.50)
The always-crowded Williamsburg restaurant idealizes a cheap, casual take on the New York steakhouse. The ultra-affordable butcher’s steak (a.k.a the hanger) epitomizes this style’s virtues: While bargain bin in price, it’s nothing of the sort in flavor. It’s skillfully prepared and minimally seasoned while grilling, and given a finishing drizzle of garlic butter that truly cements this dish’s legacy. The restaurant’s dedication to keeping the steak cheap is also commendable. Its price has risen a mere $4.50 in as many years, while other noteworthy chops have skyrocketed.
Wildair (Lower East Side) The Steak: Wagyu steak ($86)
New York’s hippest wine bar has one oversize dish on the menu: this steak for two that’s very much worth the splurge. While the restaurant alternates between fresh meat and dry-aged, it’s actually the former that best showcases the quality of the beef: The steak is cooked gently and seasoned simply, then served in thick slices that highlight the beautifully tender meat and crisp sliver of crust. Given its relative lightness — at least when compared to the dry-aged funk bombs at some other spots on this list — it only makes sense to pair it with one of the restaurant’s many natural wines, too.
Wolfgang’s Steakhouse (Murray Hill, Times Square, and Tribeca) The Steak: Porterhouse ($50 per person, up to four people)
This local chainlet was opened by a former longtime headwaiter at Peter Luger, and that’s the style they serve their porterhouses in. After all, there’s no point in messing with something that, when done right, results in something sublime. The meat ages for 28 days in on-premises meat lockers, and like Luger’s, they finish it with melted butter, which mingles with the steak’s juices to form a sauce you’ll wish you could have with every meal.
… Speaking of Peter Luger
You may have noticed the iconic Brooklyn institution isn’t on this list. There’s a reason for that. It is, without question, the city’s foremost steakhouse and a rite of passage for all New Yorkers. But it also long ago turned into a tourist trap, and, aside from the steak, some of the food can be impressively mediocre. Even the steak itself — porterhouse, served in varying sizes, with sizzling fat poured all over so that it pools when the server tips the plate up just so — can be somewhat inconsistent, and so the recommendation must come with a caveat, especially given the difficulty of securing a reservation and the high cost (and the fact that the only credit card accepted at Peter Luger is the restaurant’s own). It’s still worth a trip, but as this list makes clear, New York now has lots of spectacular steaks served in more comfortable environs.
`;
// 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();
// ]]