Where to Find the Best Tamales in San Antonio (2023)

  • Slideshows

December 04, 2019

By San Antonio Current Staff

While San Antonians love tamales any time of the year, December is when we lose self-control and eat every tamal (don't @ us, it's correct) we lay eyes on. If the tamales your family makes just aren't enough to satisfy your antojo, here are some local spots that you can trust to hit the spot.

Scroll down to view images

Where to Find the Best Tamales in San Antonio (1)

La Monita Tortilleria Factory
3202 Guadalupe St, (210) 432-0332, facebook.com
In the heart of the West Side, you’ll find this well-loved tortilleria that comes through on all fronts. While there’s much to appreciate from this menu, you’ll definitely want to stock up on tamales. Luckily this spot is open every day of the week in December, so you can have these delicious tamales on the regular if you’d like.
Photo via Yelp / Jesse G.

Where to Find the Best Tamales in San Antonio (2)

Los Angeles Tortilleria & Restaurant
300 N Zarzamora St, (210) 435-2400, facebook.com
A restaurant, tortilleria and panaderia all in one, this growing local chain has a lot to offer foodies with an appetite. Hungry foodies who stop by the Zarzamora location on Saturdays or Sundays will be able to indulge in tamales by the dozen, available in pork and chicken.
Photo via Instagram / queenoftacostx

Where to Find the Best Tamales in San Antonio (3)

Victoria Tortilla & Tamales Factory
737 Division Ave, (210) 922-5274, facebook.com/VictoriaFactorySA
Good things are worth waiting for — take Victoria Tortilla & Tamales Factory as proof. This laid-back spot knows what it’s doing in the kitchen, from the tortillas and beans (just wait ‘til you try ‘em) to, of course, the tamales. Grab a few dozen and get the party started.
Photo via Instagram / tito3000

Where to Find the Best Tamales in San Antonio (4)

Olgitas Molino
1603 N PanAm Expy, (210) 225-6364, facebook.com/olgitasmolino
Open from 6 a.m. to 2 p.m. daily, you have plenty of opportunities throughout the week to score freshly-made tamales from Olgitas. This molino keeps it real with tacos, tortillas, barbacoa and yes, tamales (only pork, but we’re not complaining). There’s even space for you to sit back and down a few tamales before you hit the road.
Photo via Yelp / Claudia M.

Where to Find the Best Tamales in San Antonio (5)

Martinez Barbacoa Y Tamales
728 Fredericksburg Road, (210) 734-6621, facebook.com
This Fredericksburg Road outpost is loved by those in the neighborhood as well as folks willing to drive across town for this goodness. The humble eatery is known for its offerings of barbacoa, tacos, carnitas, lengua, chicharrones and more — which means lots of tamales. You’ll definitely want to stock up on all the goods here.
Photo via Instagram / mikaziljanessa

Where to Find the Best Tamales in San Antonio (6)

Mimi’s Barbacoa and Tamales Y Mas
10918 Wurzbach Road #134, (210) 558-6008, facebook.com/MimisBarbacoa
Near the intersection of Wurzbach and Vance Jackson you’ll be able to find a poppin’ joint that serves tamales six days out of the week. This counter-serve spot has lots to offer, including pork tamales year-round as well as jalapeño and chicken during the holiday season.. Oh, and they also have buñuelos!
Photo via Instagram / emmanuel_delfin

Where to Find the Best Tamales in San Antonio (7)

Delicious Tamales
Multiple locations, delicioustamales.com
Not many cities have tamal chains, but San Antonio is just like that. With seven locations throughout the Alamo City, Delicious Tamales is a super dependable stop for when hunger strikes and the only cure is tamales. Available by the dozen, you can stock up on fillings like jalapeño bean, pork, chicken and even a Southwest vegetarian option. They even make tamale poppers!
Photo via Instagram / erikjongustafson

Where to Find the Best Tamales in San Antonio (8)

Trevino’s Barbacoa
13233 Nacogdoches Road, (210) 646-8346
A respectable joint for Mexican meats, menudo and more, Trevino’s Barbacoa also serves up tasty tamales for when you’re in the mood. Which is always, right? Just be sure to stop by when they’re open on the weekends.
Photo via Google Maps

Where to Find the Best Tamales in San Antonio (9)

Morenita Barbacoa
4302 S Flores St, (210) 409-2783, facebook.com/MORENITABARBACOA
Not far from Rudy’s Seafood you’ll find Morenita Barbacoa, not to be confused with La Morenita Tortilleria. This South Side outpost not only dishes out flavorful barbacoa, but also stuffed tamales. Make plans to come when MB is open on the weekends and trust us, you’ll be eating good here.
Photo via Yelp / Morenita Barbacoa

Where to Find the Best Tamales in San Antonio (10)

Los Cocos Fruteria Y Taqueria
1502 Bandera Road, (210) 431-7786
In addition to serving up some refreshing fruit cups, Los Cocos also makes a lot of scrumptious Mexican fare from the taqueria portion of its business. Here you’ll also be able to find tamales, which are actually enormous and super flavorful, wrapped in banana leaves. While you may not order a dozen to go, you’ll be happy stopping in for a fix here.
Photo via Yelp / Jennifer L.

'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 = thisvar 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 = window.location.origin + window.location.pathnamevar params = {ajaxComponent: componentId,action: 'grabMore',startIndex: startIndex,oid: slideshowOid,}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 resultjQuery(slideshowInstance.itemContainerSelector + ' div[uk-spinner]').remove()if (typeof callback === 'function') { callback() }},error: function (error) { console.log(error) }})}var lazyLoadTimeout = nullvar lazyLoadSurroundingItems = function (index) {if (slideshowInstance.lazyLoadMoreResults) {// Give lazyLoad a chance to finish before submiting more requestsvar lazyLoadTimeout = setTimeout(function () {var prevIndex = Math.max(index - 1, 1)var prevPrevIndex = Math.max(index - 2, 1)var nextIndex = index + 1var nextNextIndex = index + 2var prevIndexLoaded = slideshowInstance.items.filter('[slide-index="' + prevIndex + '"]').length > 0var prevPrevIndexLoaded = slideshowInstance.items.filter('[slide-index="' + prevPrevIndex + '"]').length > 0var nextIndexLoaded = slideshowInstance.items.filter('[slide-index="' + nextIndex + '"]').length > 0var nextNextIndexLoaded = slideshowInstance.items.filter('[slide-index="' + nextNextIndex + '"]').length > 0if(!prevIndexLoaded) {jQuery(slideshowInstance.itemContainerSelector + ' div[uk-spinner]').remove()// jQuery(slideshowInstance.itemContainerSelector).prepend(slideshowInstance.spinnerHTML)slideshowInstance.fetchMore(Math.max(prevIndex - (fetchMoreMaxCount - 1), 1))}else if(!prevPrevIndexLoaded) {jQuery(slideshowInstance.itemContainerSelector + ' div[uk-spinner]').remove()// jQuery(slideshowInstance.itemContainerSelector).prepend(slideshowInstance.spinnerHTML)slideshowInstance.fetchMore(Math.max(prevPrevIndex - (fetchMoreMaxCount - 1), 1))}if(!nextIndexLoaded) {jQuery(slideshowInstance.itemContainerSelector + ' div[uk-spinner]').remove()jQuery(slideshowInstance.itemContainerSelector).append(slideshowInstance.spinnerHTML)slideshowInstance.fetchMore(nextIndex)}else if(!nextNextIndexLoaded) {jQuery(slideshowInstance.itemContainerSelector + ' div[uk-spinner]').remove()jQuery(slideshowInstance.itemContainerSelector).append(slideshowInstance.spinnerHTML)slideshowInstance.fetchMore(nextNextIndex)}}, 500)}}var lastIndex = slideshowInstance.currentItemIndexjQuery(window).on('scroll resize', function () {// Give lazyLoad a chance to finish before submiting more requestsvar lazyLoadTimeout = setTimeout(function () {var currentIndex = slideshowInstance.currentItemIndexif(currentIndex !== lastIndex) {lastIndex = currentIndexlazyLoadSurroundingItems(currentIndex)console.log(`Slide Item index: ${currentIndex}`)fireEvent('foundation:slideshow:slidechange')}}, 50)})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.initialized = truelazyLoadSurroundingItems(startIndex)}return this}var SlideshowItems = new SlideshowItemsObj()var adUseCountOrTimer = 'count' // count|timervar adSlideCountThreshold = 1var adSlideTimeoutDuration = 10000var adSlideCounter = 0var adSlideTimeout = nullvar adOkToRefresh = falseif (adUseCountOrTimer === 'timer') {adSlideTimeout = setTimeout(()=>{ adOkToRefresh = trueclearTimeout(adSlideTimeout)adSlideTimeout = null}, adSlideTimeoutDuration)}// Timeout to prevent fast jogging from item to itemvar itemChangeTimeout = nulljQuery(document).on('foundation:slideshow:slidechange', function () {// itemChangeTimeout = setTimeout(function () {// }, 50)if (editorView !== true) {updateMetaDataFromElement(SlideshowItems.currentItem)}// Google 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')}adSlideCounter++if (adUseCountOrTimer === 'count') {if (adSlideCounter >= adSlideCountThreshold) {adSlideCounter = 0adOkToRefresh = true}}else if (adUseCountOrTimer === 'timer' && adSlideTimeout === null) {adSlideTimeout = setTimeout(()=>{ adOkToRefresh = trueclearTimeout(adSlideTimeout)adSlideTimeout = null}, adSlideTimeoutDuration)}console.log('[AdRefreshLog]', adOkToRefresh, adUseCountOrTimer, adSlideCounter, adSlideCountThreshold, adSlideTimeoutDuration)if (adOkToRefresh === true) {if (typeof (Foundation.Ad.slots['SAC_LeaderboardHeader-1']) === 'object') {Foundation.Ad.refresh('SAC_LeaderboardHeader-1')}if (typeof (Foundation.Ad.slots['SAC_Footer-1']) === 'object') {Foundation.Ad.showFooter('SAC_Footer-1');}adOkToRefresh = false;}})// Try to init immediatelySlideshowItems.init()// On document loadedjQuery(function () {SlideshowItems.init()})})();

Top Articles
Latest Posts
Article information

Author: Virgilio Hermann JD

Last Updated: 03/15/2023

Views: 6690

Rating: 4 / 5 (41 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Virgilio Hermann JD

Birthday: 1997-12-21

Address: 6946 Schoen Cove, Sipesshire, MO 55944

Phone: +3763365785260

Job: Accounting Engineer

Hobby: Web surfing, Rafting, Dowsing, Stand-up comedy, Ghost hunting, Swimming, Amateur radio

Introduction: My name is Virgilio Hermann JD, I am a fine, gifted, beautiful, encouraging, kind, talented, zealous person who loves writing and wants to share my knowledge and understanding with you.