The San Antonio restaurants that never disappoint (2024)

San Antonio's dining scene is becoming ever larger and its offerings ever more diverse. However, all those choices can be overwhelming.

Which is why we curated this list of restaurants that dependably offer delicious food, great service and memorable dining experiences. Whether you’re a dedicated foodie or just looking for a satisfying meal, these restaurants won't disappoint.

So sit back, relax and get ready to discover some of San Antonio's most reliable culinary gems.

Tags:

  • San Antonio restaurants,
  • excellent restaurants near me,
  • iconic restaurants,
  • classic restaurants

Scroll down to view images

The San Antonio restaurants that never disappoint (1)

Photo via Instagram / mt.calories

Chatman’s Chicken
1747 S. W.W. White Road, (210) 359-0245, facebook.com/Chatmans-Chicken
Who would’ve known that getting to fried food heaven meant looking no further than the East Side? You can’t go wrong with the fried chicken here, and the restaurant has a great variety of homemade sides like mashed potatoes and coleslaw to pair it with.

The San Antonio restaurants that never disappoint (2)

Sanford Nowlin

The Station Cafe
108 King William St., (210) 444-2200, thestationsa.com
This cafe is a go-to for fresh bread and house-made sauces. Diners can take advantage of all the love that goes into the food and enjoy twists on classics, like the San Antonio cheesesteak (mozzarella and cheddar cheeses, jalapeños, onions, roast beef and white BBQ sauce) or the Turkey Chupacabra (sweet and spicy Chupacabra serrano sauce, smoked turkey, melted cheddar, lettuce, tomato).

The San Antonio restaurants that never disappoint (3)

Photo via Instagram / noodletreetx

Noodle Tree
7114 UTSA Boulevard, Suite 101, (210) 233-6371, noodletreetx.com
This low-key noodle joint located right by UTSA offers an innovative, Taiwanese-inspired take on the classic bowl of ramen. Bring some friends to chow down on some bao buns or indulge in a big bowl of spicy kimchi ramen as the ultimate hangover cure.

The San Antonio restaurants that never disappoint (4)

Sanford Nowlin

The Cove
606 W. Cypress St., (210) 227-2683, thecove.us
The Cove has long been a haven for San Antonians, offering burgers, tacos and more made with locally-sourced, hormone free and home grown ingredients. Its spacious patio accommodates those looking to enjoy the weather, plus it has a play area with plenty of room for kids to have a blast. Be sure to check out the Texas bar, which offers over 40 Texas craft brews.

The San Antonio restaurants that never disappoint (5)

Photo via Instagram / thejerkshack

The Jerk Shack
10234 TX-151, (210) 776-7780, facebook.com/thejerkshacksatx
A consistent mention in restaurant roundups, folks keep coming back to the Jerk Shack. Both a Black-owned and veteran-owned eatery, the restaurant offers wild flavors, hefty portions and good eating.

The San Antonio restaurants that never disappoint (6)

Nina Rangel

Cullum’s Attaboy
111 Kings Ct., cullumsattaboy.com
Brought to San Antonio by the chef behind St. Mary's Strip favorite Cullum’s Attagirl, Attaboy is an elevated brunch spot with a menu featuring everything from brunch burgers to escargot. From morning coffee to brunch co*cktails, Attaboy’s menu has diners covered.

The San Antonio restaurants that never disappoint (7)

Photo via Instagram / 2msmokehouse

2M Smokehouse
2731 S. W.W. White Rd., (210) 885-9352, 2msmokehouse.com
2M Smokehouse cooks out of their own love of barbecue and the proof is on the plate. Seasoned and smoked to perfection, their menu offers all the barbecue must-haves as well as daily specials Thursday through Saturday.

The San Antonio restaurants that never disappoint (8)

Photo via Instagram / rebellesanantonio

Rebelle
300 E. Travis St., (210) 352-3171, rebellesa.com
Found inside the St. Anthony Hotel, “modern classic” Rebelle is a favorite for inventive co*cktails and seafood that’s as delicious as it is beautiful.

The San Antonio restaurants that never disappoint (9)

Sanford Nowlin

Simi's India Cuisine
4535 Fredericksburg Road #109, (210) 737-3166, facebook.com/Simis-India-Cuisine-104962319547629
Those with special diets will feel more than welcome here thanks to a number of vegetarian dishes on the menu. The restaurant's delicious tandoori dishes amply prove why this spot is a go-to for Indian fare for many locals.

The San Antonio restaurants that never disappoint (10)

Sanford Nowlin

M.K. Davis Restaurant & Bar
1302 N. Flores St., (210) 223-1208, facebook.com/mkdavisrestaurant
This family-owned restaurant specializes in serving up steaks, seafood and Mexican food to hungry San Antonians. What started in 1956 as some picnic tables and ice-cold beers is now a San Antonio classic with both food and an atmosphere that remains true to the restaurant’s family roots.

The San Antonio restaurants that never disappoint (11)

Photo via Instagram / carnitas_lonja

Carnitas Lonja
1107 Roosevelt Ave., (210) 455-2105, carnitaslonja.com
A legit pork paradise on the South Side, Carnitas Lonja was recognized in 2019 by The Daily Meal as one of the best hole-in-the-wall spots in the U.S., citing its no-frills approach to carnitas and delicious corn tortillas as reason enough to visit the Alamo City.

The San Antonio restaurants that never disappoint (12)

Photo via Instagram / southerleigh_fine_food

Southerleigh Fine Food & Brewery
136 E. Grayson St. #120, (210) 455-5701, southerleighatpearl.com
Sitting in the heart of the Pearl is Southerleigh, a prime spot for Texas-inspired bites with a focus on the Gulf Coast. The cozy, historic space offers a special ambiance to enjoy comfort food staples with elevated sophistication.

The San Antonio restaurants that never disappoint (13)

Photo via Instagram / compa_chon_el_coreano

Taquitos West Avenue
2818 West Ave., (210) 525-9888, facebook.com/TaquitosWestAvenue1
Foodies in the know consider this taquito spot — which offers a steady lineup of meats — to be just as authentic as a vendor you would find in Mexico. So there’s no need to cross the border — just indulge at this local favorite, which was voted the Best Tacos in SA by Current readers from 2019-2021.

The San Antonio restaurants that never disappoint (14)

Photo via Instagram / brasseriemonchouchou

Brasserie Mon Chou Chou
312 Pearl Parkway, (210) 469-3743, brasseriemonchouchou.com
Unlike pricey, upscale French restaurants, Brasserie Mon Chou Chou aims to provide a more casual atmosphere for guests to enjoy an afternoon snack of wine and oysters. Explore classic flavors of French cuisine such as raclette cheese sandwiches and croque monsieurs at the restaurant’s Pearl post.

The San Antonio restaurants that never disappoint (15)

Photo via Instagram / s.a.foodie

Sichuan House
3505 Wurzbach Road #102, (210) 509-9999, sichuaneats.com
This iconic Chinese eatery offers mouth-numbingly spicy Sichuan cuisine, but don't fret if your taste buds need something a little less fiery — the menu also features an array of less spicy fare.

The San Antonio restaurants that never disappoint (16)

Photo via Instagram / raysdriveinn

Ray's Drive Inn
822 S.W. 19th St., (210) 432-7171, facebook.com/RaysDriveInn
This San Antonio staple is home to the original puffy taco — and has a patent to prove it. From their signature puffy tacos to classic plates like enchiladas and carne guisada, it’s clear this SA mainstay knows their stuff. The drive-thru institution, housed on the West Side, also serves up tasty burgers and hot dogs.

The San Antonio restaurants that never disappoint (17)

Jessica Attie

Clementine
2195 N.W. Military Highway, (210) 503-5121, clementine-sa.com
Over in Castle Hills is a strip mall that hosts Clementine, a charming restaurant concept with stylish decor and a globally-inspired menu. With the “Feed Me” option, Chef John Russ and his team will craft a menu that’s as unexpected as it is delicious.

The San Antonio restaurants that never disappoint (18)

Photo via Instagram / mingsthing

Ming’s
914 E. Elmira St., (210) 600-4083, mingsthing.com
Aptly named Ming’s after the restaurant’s founder and owner, this beloved spot operates a catering company and noodle bar near the San Antonio Museum of Art. Ming’s provides delicious comfort food with menu items like steamed buns, ma-la noodles and teriyaki crispy chicken, adding to the identity of the city’s diverse palette.

The San Antonio restaurants that never disappoint (19)

Photo via Instagram / bobbiescafe

Bobbie’s Cafe
6728 S. Flores St., (210) 923-1158, bobbiescafe.com
Now operated by the descendants of the original owners, Bobbie’s Cafe has been “cookin’ with love” since 1972. The restaurant’s homestyle meals include everything from Tex-Mex dishes to killer burgers and fish plates.

The San Antonio restaurants that never disappoint (20)

Photo via Instagram / lafritesatx

La Frite Belgian Bistro
728 S. Alamo St., (210) 214-7555, lafritesa.com
La Frite serves its signature Belgian fare in a cozy dining room that oozes comfortable intimacy. Nosh on European dishes and an all-French wine selection at this family-owned Southtown joint.

The San Antonio restaurants that never disappoint (21)

Photo via Instagram / thaideesa

Thai Dee Restaurant
5307 Blanco Road, (210) 342-3622, thaideesa.com
This central SA mainstay serves up authentic Thai delights such as curries, pad Thai, panang noodles and Thai fried rice.

Page 1 of 2

Next Page

`this.removeSpinner = () => {jQuery(slideshowInstance.itemContainerSelector + ' div[uk-spinner]').remove()};this.prevPageLinkHTML = `Previous Page `this.nextPageLinkHTML = `Next Page `Object.defineProperties(this, {'items': { get: function() { return jQuery(this.itemContainerSelector).find(this.itemSelector)}},'currentItem': {get: function() {var foundItem = nullvar foundItemInView = nullthis.items.each(function () {var currentInView = elementInView(jQuery(this), scrollTopOffset, 0)if (currentInView) {// An in view item is already located extra logicif (foundItemInView && foundItemInView.inView) {// The entire previously found item is visible - it winsif (foundItemInView.topInView && foundItemInView.bottomInView) return// The previously found item covers the visible area - it winsif (foundItemInView.middleCoversView) return// The previously found item has more surface area - it winsif (foundItemInView.percentVisable > currentInView.percentOfViewHeight) return}foundItem = jQuery(this)foundItemInView = currentInView}})return foundItem}},'currentItemIndex': {get: function() {var currentElement = this.currentItem.closest('[slide-index]')if(currentElement) {return parseInt(currentElement.attr('slide-index'))}return null}},'currentItemId': {get: function() {var currentElement = this.currentItem.closest('[slide-id]')if(currentElement) {return currentElement.attr('slide-id')}return null}}})var slideshowInstance = this// xxx for debuggering - igwindow.slideshowInstance = slideshowInstance;var scrollTopOffset = window.innerHeight > this.smallMenuBreakPoint ? 110 : 140var originUrl = window.location.hrefthis.scrollToIndex = function (index) {var slideItem = this.items.filter('[slide-index="' + index + '"]')if (slideItem.length) { var topOffset = slideItem.offset().top - scrollTopOffset// window.scrollTo({ top: topOffset, behavior: 'smooth' })window.scrollTo({ top: topOffset, behavior: 'auto' })}else {this.fetchMore(index, function () {slideshowInstance.scrollToIndex(index)})}}this.fetchMore = function (startIndex, callback) {var currentItemOnFetch = this.currentItemvar url = '/sanantonio/the-san-antonio-restaurants-that-never-disappoint/Slideshow/31654958'var params = {ajaxComponent: componentId,action: 'grabMore',startIndex: startIndex,oid: slideshowOid,cb: '1710083562',}if (paginate) {params.paginate = paginate;}var keywords = currentItemOnFetch.attr('slide-keywords')if (keywords) {params.keywords = keywords}if (editorView === true) {params.editor = true}// jQuery.ajax({url: url,type: 'GET',data: params,dataType: 'json',// beforeSend: function () { console.log('Fetching results') },success: function (data) {console.log('success', data.results, data.results.length, data.error, data)if (data) {if (data.error) {console.log(data.error)}else if (data.results) {console.log('slideshowInstance.items', slideshowInstance.items)for (var i = 0; i < data.results.length; i++) {var resultItem = jQuery(data.results[i])// // var resultItem = jQuery.parseHTML(data.results[i], document, true);var resultItemIndex = parseInt(resultItem.attr('slide-index'))var resultAlreadyInserted = slideshowInstance.items.filter('[slide-index="' + resultItemIndex + '"]').length > 0console.log('result', resultItemIndex)var previousItem = nullvar previousItemIndex = 0if (!resultAlreadyInserted) {slideshowInstance.items.each(function () {if (resultAlreadyInserted) returnvar currentItem = jQuery(this)var currentItemIndex = parseInt(currentItem.attr('slide-index'))if (resultItemIndex === currentItemIndex ) {resultAlreadyInserted = truereturn}else if (resultItemIndex > previousItemIndex && resultItemIndex < currentItemIndex) {var topOffsetBeforeInsert = currentItemOnFetch.get(0).getBoundingClientRect().topresultItem.insertBefore(currentItem)resultAlreadyInserted = truevar adjustedTopPosition = currentItemOnFetch.offset().top - topOffsetBeforeInsertwindow.scrollTo({ top: adjustedTopPosition, behavior: 'auto' })}previousItem = currentItempreviousItemIndex = currentItemIndex})if (!resultAlreadyInserted) {var topOffsetBeforeInsert = currentItemOnFetch.get(0).getBoundingClientRect().topresultItem.insertAfter(slideshowInstance.items.last())resultAlreadyInserted = truevar adjustedTopPosition = currentItemOnFetch.offset().top - topOffsetBeforeInsertwindow.scrollTo({ top: adjustedTopPosition, behavior: 'auto' })if (typeof instgrm === 'object' && instgrm.Embeds && typeof instgrm.Embeds.process === 'function') {setTimeout(instgrm.Embeds.process, 200);}}}}}else { console.log('How did we get here?') }}else { console.log('No result or error returned from content request.') }},complete: function () { slideshowInstance.items = jQuery(slideshowInstance.itemSelector) // Update items resultslideshowInstance.removeSpinner();if (typeof callback === 'function') { callback() }},error: function (jqXHR, textStatus, errorThrown) {console.log(jqXHR, textStatus, errorThrown);if (textStatus === 'timeout') {slideshowInstance.removeSpinner();if (paginate === true) return;paginate = true;if (slideshowInstance.items.length < totalSlides) {var firstLoadedIndex = parseInt(slideshowInstance.items.first().attr('slide-index')) || 1;var lastLoadedIndex = parseInt(slideshowInstance.items.last().attr('slide-index')) || totalSlides;if(firstLoadedIndex > 1) {var prevLink = jQuery(slideshowInstance.prevPageLinkHTML);var prevLinkUrl = new URL(url, `https://www.sacurrent.com`);prevLinkUrl.searchParams.append('startIndex', firstLoadedIndex - 1);prevLinkUrl.searchParams.append('paginate', 'true');prevLink.attr('href', prevLinkUrl.href);jQuery(slideshowInstance.itemContainerSelector).prepend(prevLink);}if(lastLoadedIndex < totalSlides) {var nextLink = jQuery(slideshowInstance.nextPageLinkHTML);var nextLinkUrl = new URL(url, `https://www.sacurrent.com`);nextLinkUrl.searchParams.append('startIndex', lastLoadedIndex + 1);nextLinkUrl.searchParams.append('paginate', 'true');nextLink.attr('href', nextLinkUrl.href);jQuery(slideshowInstance.itemContainerSelector).append(nextLink);}}}}})}// // // var lazyLoadSurroundingItemsInterval = null;// var lazyLoadTimeout = null;// var lazyLoadSurroundingItems = function (index) {// if (paginate) return;// if (slideshowInstance.items.length >= totalSlides) {// clearInterval(lazyLoadSurroundingItemsInterval);// }// if (slideshowInstance.lazyLoadMoreResults) {// // Rate limit lazyloading more slides// clearTimeout(lazyLoadTimeout);// lazyLoadTimeout = setTimeout(function () {// var prevIndex = Math.max(index - 1, 1)// var prevPrevIndex = Math.max(index - 2, 1)// var nextIndex = index + 1// var nextNextIndex = index + 2// var prevIndexLoaded = slideshowInstance.items.filter('[slide-index="' + prevIndex + '"]').length > 0// var prevPrevIndexLoaded = slideshowInstance.items.filter('[slide-index="' + prevPrevIndex + '"]').length > 0// var nextIndexLoaded = slideshowInstance.items.filter('[slide-index="' + nextIndex + '"]').length > 0// var nextNextIndexLoaded = slideshowInstance.items.filter('[slide-index="' + nextNextIndex + '"]').length > 0// if(!prevIndexLoaded) {// slideshowInstance.removeSpinner();// // jQuery(slideshowInstance.itemContainerSelector).prepend(slideshowInstance.spinnerHTML)// slideshowInstance.fetchMore(Math.max(prevIndex - (fetchMoreMaxCount - 1), 1))// }// else if(!prevPrevIndexLoaded) {// slideshowInstance.removeSpinner();// // jQuery(slideshowInstance.itemContainerSelector).prepend(slideshowInstance.spinnerHTML)// slideshowInstance.fetchMore(Math.max(prevPrevIndex - (fetchMoreMaxCount - 1), 1))// }// if(!nextIndexLoaded) {// slideshowInstance.removeSpinner();// jQuery(slideshowInstance.itemContainerSelector).append(slideshowInstance.spinnerHTML)// slideshowInstance.fetchMore(nextIndex)// }// else if(!nextNextIndexLoaded) {// slideshowInstance.removeSpinner();// jQuery(slideshowInstance.itemContainerSelector).append(slideshowInstance.spinnerHTML)// slideshowInstance.fetchMore(nextNextIndex)// }// }, 200)// }// }// // // var lazyLoadLastCheckedIndex = slideshowInstance.currentItemIndex// lazyLoadSurroundingItemsInterval = setInterval(function () {// var currentIndex = slideshowInstance.currentItemIndex// console.log(`lazyLoadSurroundingItemsInterval - currentIndex: ${currentIndex}; lazyLoadLastCheckedIndex: ${lazyLoadLastCheckedIndex}`);// if(currentIndex !== lazyLoadLastCheckedIndex) {// lazyLoadLastCheckedIndex = currentIndex;// lazyLoadSurroundingItems(currentIndex);// }// }, 1000);var onScrollLastCheckedIndex = slideshowInstance.currentItemIndexjQuery(window).on('scroll resize', function () {var currentIndex = slideshowInstance.currentItemIndexif(currentIndex !== onScrollLastCheckedIndex) {onScrollLastCheckedIndex = currentIndex// console.log(`Slide Item index: ${currentIndex}`)fireEvent('foundation:slideshow:slidechange')}});// var onScrollTimeout = null;// jQuery(window).on('scroll resize', function () {// // Rate limit lazyloading more slides// clearTimeout(onScrollTimeout);// onScrollTimeout = setTimeout(function () {// var currentIndex = slideshowInstance.currentItemIndex// if(currentIndex !== onScrollLastCheckedIndex) {// onScrollLastCheckedIndex = currentIndex// console.log(`Slide Item index: ${currentIndex}`)// fireEvent('foundation:slideshow:slidechange')// }// }, 100);// });this.initialized = falsethis.init = function () {if (this.initialized === true) return// Prevent the browser from trying to scroll to the last scroll position before reloadif (history.scrollRestoration) {history.scrollRestoration = 'manual'}var startIndex = this.items.first().attr('slide-index')var oid = window.location.pathname.match(/\d+$/)if (oid) {var grabIndex = parseInt(this.items.closest('[slide-id="' + oid[0] + '"]').attr('slide-index'))if (!isNaN(grabIndex)) {var startIndex = grabIndex}}// if (startIndex > 1) {// this.scrollToIndex(startIndex)// }// if(jQuery(this.itemContainerSelector + '[single-listing]').length === 0) {// this.lazyLoadMoreResults = true// }this.lazyLoadMoreResults = truethis.initialized = true// lazyLoadSurroundingItems(startIndex)}return this}var SlideshowItems = new SlideshowItemsObj()// Ad refresh on slide change handlingvar adSlideChangeRefreshThreshold = 10;var adSlideChangeRefreshTimeout = null;// adSlideChangeRefreshTimeout = setTimeout(function () {adSlideChangeRefreshTimeout = null; // Set timer to null}, adSlideChangeRefreshThreshold)// Timeout to prevent fast jogging from item to itemvar itemChangeTimeout = nulljQuery(document).on('foundation:slideshow:slidechange', function () {if (editorView !== true) {updateMetaDataFromElement(SlideshowItems.currentItem)}// Google Anayltics track pageviewif (typeof ga === 'function') {console.log("foundation:slideshow:slidechange event", "sending pageview navigation to:", window.location.href);ga('set', 'location', window.location.href)for (let i = 1; i <= 3; i++) {let currentDimension = jQuery(SlideshowItems.currentItem).attr('ga-dimension'+i)if (typeof currentDimension === 'string') {ga('set', 'dimension' + i, currentDimension)}else {ga('set', 'dimension' + i, '') }}ga('send', 'pageview')}// if (adSlideChangeRefreshTimeout === null) {// adSlideChangeRefreshTimeout = setTimeout(function () {adSlideChangeRefreshTimeout = null; // Set timer to null}, adSlideChangeRefreshThreshold)// if (Foundation.Ad && Foundation.Ad.slots) {if (typeof (Foundation.Ad.slots['_Footer-1']) === 'object') {Foundation.Ad.showFooter('_Footer-1');}}// if (Foundation.Gpt && Foundation.Gpt.getInPageSlotDataById) {var gptSlots = window.googletag.pubads().getSlots();var gptSlotFixedFooter = gptSlots.filter((slot) => slot.getSlotElementId() === `FixedFooter`)if (gptSlotFixedFooter.length) {Foundation.Gpt.ShowAd.refreshFixedFooter(gptSlotFixedFooter[0]);}}}});// Try to init immediatelySlideshowItems.init()// On document loadedjQuery(function () {SlideshowItems.init()})// })();

The San Antonio restaurants that never disappoint (2024)
Top Articles
Latest Posts
Article information

Author: Rev. Porsche Oberbrunner

Last Updated:

Views: 5936

Rating: 4.2 / 5 (73 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Rev. Porsche Oberbrunner

Birthday: 1994-06-25

Address: Suite 153 582 Lubowitz Walks, Port Alfredoborough, IN 72879-2838

Phone: +128413562823324

Job: IT Strategist

Hobby: Video gaming, Basketball, Web surfing, Book restoration, Jogging, Shooting, Fishing

Introduction: My name is Rev. Porsche Oberbrunner, I am a zany, graceful, talented, witty, determined, shiny, enchanting person who loves writing and wants to share my knowledge and understanding with you.