Soups & Stews
This best taco soup recipe from scratch delivers restaurant-quality depth with every spoonful—rich broth, tender meat, and a crispy tortilla topping that steals the show. 🌟 The secret lies in building flavor layer by layer, starting with a homemade broth that simmers with spices and aromatics until it's deeply aromatic and packed with umami.
I've perfected this version over years of testing, ensuring each ingredient plays its part without overpowering the others.
The beauty of this recipe is in its balance: crispy tortilla strips add satisfying texture, while black beans and corn bring hearty substance. The broth isn't just watered-down seasoning—it's a complex, savory foundation that makes even the simplest toppings shine.
What sets this apart is the slow-cooked chicken, which stays tender and absorbs the flavors perfectly, ensuring every bite is packed with that perfect taco-inspired punch.
By the time you're done, you'll have a steaming bowl of soup with layers of flavor—smoky, spicy, and slightly sweet—that feels both comforting and exciting. The crispy tortilla topping adds a satisfying crunch that contrasts beautifully with the creamy broth, while fresh cilantro and lime brighten everything up.
This isn't just soup; it's a complete meal that brings the vibrancy of taco night to your dinner table.
Whether you're feeding a crowd or meal prepping for the week, this recipe scales effortlessly. The instructions are designed to be approachable, with clear steps that guide you through building the broth, cooking the meat, and assembling everything into a cohesive, flavorful dish.
Let's get started—your taste buds will thank you.
Ingredients for best taco soup recipe from scratch
Six servings of restaurant-style taco soup with layers of flavor and crispy tortilla topping—no shortcuts here.
| Ingredient | Amount | Notes |
|---|---|---|
| Boneless Chicken Thighs 🍗 | 1 ½ lb | Skin-on for flavor, trimmed |
| Yellow Onion 🧅 | 1 whole | Medium size, diced |
| Garlic Cloves 🧄 | 6 cloves | Fresh, minced |
| Carrots 🥕 | 3 medium | Peeled, chopped |
| Celery Stalks 🌿 | 3 whole | Fresh, chopped |
| Chicken Broth 💧 | 6 cups | Low-sodium preferred |
| Canned Black Beans 🫘 | 2 cups | Drained, rinsed |
| Corn Kernels 🌽 | 1 ½ cups | Fresh or frozen |
| Diced Tomatoes 🍅 | 1 can (14.5 oz) | Fire-roasted preferred |
| Tomato Paste 🍅 | 2 tbsp | Smooth consistency |
| Chili Powder 🌶️ | 2 tbsp | Medium heat preferred |
| Ground Cumin 🌿 | 1 tbsp | Toasted for depth |
| Dried Oregano 🍃 | 1 tsp | Mexican if available |
| Salt 🧂 | 1 tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Corn Tortillas 🌯 | 6 whole | Small size, cut into strips |
| Vegetable Oil 🫒 | ¼ cup | For frying tortillas |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
| Lime 🍋 | 1 whole | Juiced, for serving |
| Sour Cream 🥛 | ½ cup | For serving |
The chicken thighs are non-negotiable—they stay juicy while absorbing all those smoky spices. Look for thighs with good marbling at Costco or your local butcher shop; they're often cheaper there too. If you're using boneless, skinless breasts, they'll dry out faster. For the broth, homemade is ideal but a quality low-sodium store-bought works in a pinch—just add an extra pinch of salt at the end. The carrots and celery are your flavor base, so don't skip peeling them unless you're okay with a slightly earthier taste. I always grab the organic produce section at Trader Joe's—it's consistent and affordable.
No fresh cilantro? Dried works at one-third the amount, but it won't have that same bright punch. Running out of corn tortillas? Flour tortillas cut into strips fry up just as crispy—just make sure they're thin. The black beans can be canned or cooked from dry; if using dry, soak them overnight for the best texture. For extra depth, add a splash of beer (like Corona or Modelo) to the broth—it caramelizes beautifully. The tomato paste is where the magic happens; don't skip it—it thickens the broth and adds that authentic taco flavor. If you're watching calories, you can skip the sour cream and serve with avocado instead.
This soup tastes even better the next day—make a double batch and freeze half for lazy weeknights. The tortilla strips stay crispy for about 2 days if stored in an airtight container, but I recommend frying a fresh batch when reheating. The broth keeps for 5 days in the fridge or 3 months frozen. Pro tip: Portion the soup into containers with the tortilla strips on top—they'll stay crispy right up until you're ready to eat. Garnish with extra cilantro, lime wedges, and a dollop of sour cream right before serving—that's when everything comes together.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—no extra pans, no messy cleanup. Just brown the chicken thighs first, toss in the onion, garlic, and those crunchy carrots and celery, then let the broth do its thing. By the time the chicken shreds easily, the veggies are tender and the kitchen’s spotless.
- Garlic Bomb Depth: Between us, the garlic cloves here aren’t just minced—they’re sizzled until they’re golden and fragrant. That crispy edge with the creamy chicken and spiced broth? It’s the kind of flavor that makes you pause mid-sip of beer and go, “Wait, is this actually dinner?”
- Lunchbox Hero: Make a double batch on Sunday, and you’ve got weeknight lunches covered. The flavors only get better the next day—chicken stays juicy, veggies soften just right, and it reheats like a dream. (Yes, even on a Tuesday night.)
- Budget Win: Chicken thighs are forgiving and cheap, and the veggies stretch this soup into four hearty servings. I’ll be real: it’s the kind of meal that makes grocery day feel like a victory, not a math problem. Plus, the leftovers taste like you put in effort—even when you didn’t.
Step-by-step instructions for taco soup with crispy tortilla topping
Here's how to build bold, layered flavor—starting with rich broth and ending with irresistible crunch.
🔥 Step 1: Build the Flavor Base with Chicken and Aromatics
Heat a large Dutch oven over medium-high heat. Pat the 1.5 lb boneless chicken thighs dry with paper towels and season generously with 1 tsp salt, 0.5 tsp black pepper, and 1 tbsp chili powder. Add the chicken and sear for 4-5 minutes per side until golden brown and cooked through to 165°F internally.
Remove the chicken and set aside. In the same pot, add 0.25 cup vegetable oil and heat until shimmering. Add the 1 whole yellow onion and 3 whole celery stalks, chopped, cooking for 5 minutes until softened. Stir in the 6 cloves minced garlic and 3 medium carrots, chopped, cooking for another 2 minutes until fragrant. Here's the thing—don't let the garlic burn, or you'll taste bitterness instead of sweetness.
🍳 Step 2: Develop the Broth with Spices and Tomatoes
Reduce heat to medium-low and stir in the 2 tbsp tomato paste, 1 tbsp ground cumin, and 1 tsp dried oregano. Cook for 1 minute to toast the spices and deepen their flavor. Pour in the 6 cups chicken broth and scrape up any browned bits from the bottom of the pot—this is where all the rich flavor hides.
Add the 1 can (14.5 oz) diced tomatoes and bring everything to a gentle simmer. Return the chicken to the pot, breaking it into bite-sized pieces with a wooden spoon. Let it simmer for 10 minutes until the chicken is fully tender and the flavors meld together beautifully. Real talk: this is where the magic happens—your soup's going to taste like it's been simmering all day.
🥘 Step 3: Add the Vegetables and Beans
Stir in the 2 cups drained black beans and 1.5 cups corn kernels. Simmer for another 8-10 minutes until the carrots are tender but still hold their shape. The beans should be heated through, and the corn should be warm but still bright in color. Taste and adjust seasoning with more salt or chili powder if needed—this is your chance to dial in the perfect balance of flavors.
Here's a pro tip: if your soup seems too thick, add a splash of water or broth to reach your desired consistency. You want it hearty but still easy to ladle. Keep the soup warm on the stove over low heat while you prepare the crispy topping—you don't want it to get cold waiting for its finishing touch.
🔥 Step 4: Fry the Crispy Tortilla Strips
Cut the 6 whole corn tortillas into ¼-inch thick strips. Heat 0.25 cup vegetable oil in a skillet over medium-high heat until it reaches 350°F—you'll see small bubbles forming around the edges. Fry the tortilla strips in batches for 1-2 minutes until they're deep golden brown and crispy. Drain on paper towels and sprinkle immediately with 1 tsp salt while they're still hot.
Don't skip this step—crispy tortilla strips are what elevates this soup from good to amazing. They add that perfect textural contrast to every bite. If you're worried about the oil getting too hot, test it with a small piece of tortilla—if it sizzles immediately and turns golden in under a minute, it's ready. Keep the fried strips warm in a single layer on a wire rack.
🍽️ Step 5: Serve with All the Toppings
Ladle the warm taco soup into bowls, making sure each serving gets plenty of chicken, beans, and corn. Top each bowl generously with the crispy tortilla strips, then add a dollop of 0.5 cup sour cream and a sprinkle of 0.25 cup chopped fresh cilantro. Finish with a wedge of juiced lime on the side—this bright acidity cuts through all the rich, spicy flavors.
Here's how to serve it like a pro: offer the lime wedges on the table so everyone can squeeze their own juice, and have extra chili powder and sour cream available for those who want to adjust the heat or creaminess. Each bite should deliver warm, hearty soup with that satisfying crunch from the tortilla strips, and a perfect balance of smoky, spicy, and tangy flavors. Trust me, this is the kind of soup that disappears fast—make extra if you can!
Pro Tips For Making Best Taco Soup Recipe From Scratch
- Brown the Chicken Hard: I used to skip this step because it takes time, but those first 8-10 minutes of searing the chicken thighs in batches—skin-side down until deeply golden—builds flavor that nothing else can match. The Maillard reaction happens here, and it’s the difference between "good soup" and "wow soup." Use a heavy pot and don’t crowd the pan.
- Mince the Onion Fine: Big chunks of onion won’t disappear in taco soup, and they’ll make the texture uneven. Pulse the onion in a food processor for 3-4 seconds until it’s more like a paste than dice—this way, it melts into the broth instead of sitting as identifiable pieces. (Yes, even if you’re impatient like me.)
- Salt the Chicken Twice: Season the thighs generously before browning, then add another pinch of salt to the pot after the chicken comes out. The first salting seasons the meat, the second balances the flavors after the chicken releases its juices. I learned this the hard way—my first batch tasted bland because I only salted once.
- Simmer the Veggies Low: After adding carrots and celery, reduce heat to a gentle simmer (barely bubbling) and cover the pot. High heat turns the veggies mushy and the broth cloudy. This isn’t a race—let them cook for 15-20 minutes until tender but still holding shape. (Your future self will thank you.)
Common mistakes when making this recipe
Overcooking the Chicken
One of the biggest mistakes is overcooking the chicken thighs, which turns them dry and rubbery. The goal is to reach 165°F internal temperature while keeping them juicy. I’ve seen people walk away from the stove and forget about the chicken, only to come back to tough, stringy meat.
Always use a meat thermometer to check—165°F is the magic number for safe, tender chicken. Once it hits that temp, remove it immediately and let it rest for 5 minutes before adding it back to the pot. 🌡️
Skipping the Broth Deglaze
After searing the chicken, many people wipe out the Dutch oven and start fresh with the aromatics. That’s a huge flavor mistake! Those browned bits on the bottom of the pot—called fond—are packed with deep, savory flavor. Scrape them up with a wooden spoon when you add the broth to create a richer, more complex base. I always
Ignoring the Spice Toasting
The spices in this recipe need to be toasted briefly to deepen their flavor. When you add the tomato paste, cumin, and oregano to the pot, cook them for 1 minute before adding the broth. This step releases their essential oils and creates a more aromatic, layered taste. I’ve tasted soups where people skipped this step, and they lacked that warm, earthy depth. Don’t rush it—let those spices sizzle and smell amazing before adding the liquid.
Underseasoning the Soup
Many home cooks hold back on salt and spices, thinking they can always add more later. But once the soup is assembled, it’s hard to dial in the perfect balance. Taste the soup before serving and adjust with salt, chili powder, or even a squeeze of lime if needed.
I always add a pinch of salt at the end—even if I think it’s seasoned well—because the flavors mellow as the soup sits. Trust your taste buds and don’t be afraid to make it bold.
Overcrowding the Pot
When simmering the soup, it’s tempting to throw everything in at once, but overcrowding the pot can lead to uneven cooking and a watery broth. Add the beans and corn in stages, letting the soup simmer for 5-8 minutes between additions. This ensures everything absorbs the flavors and cooks evenly.
I also recommend using a large Dutch oven—it gives the soup room to breathe and develop its full flavor. If your pot is too small, the soup might end up thin and bland.
Neglecting the Tortilla Topping
The crispy tortilla strips are what make this soup special, so don’t skip them—or worse, make them soggy! Fry them in small batches at 350°F until they’re deep golden brown, then drain them on paper towels. Sprinkle them with salt immediately to lock in the crunch.
I’ve seen people fry them at a lower temperature or crowd the pan, which makes them greasy instead of crispy. Keep them warm in a single layer on a wire rack until serving—this way, they stay crispy and ready to top each bowl. 🔥
Nutrition facts
Frequently asked questions
Can I make this taco soup vegetarian? Swap the chicken thighs for 1.5 lbs of firm tofu or chickpeas (drained and rinsed). For extra protein, add 1 cup of lentils along with the beans. The broth will still develop rich flavors—just
How do I adjust the spice level?
Start with the 2 tbsp chili powder in the recipe, but add more to taste—up to 1 extra tbsp for heat lovers. For smoky depth without spice, add ½ tsp smoked paprika. Always taste before serving and adjust with lime juice or sour cream to balance the heat.
Can I make this soup in a slow cooker?
Yes! Brown the chicken and aromatics first in a skillet, then transfer everything to the slow cooker. Add all ingredients except the tortilla strips and cook on low for 6-7 hours or high for 3-4 hours. Stir in the tortilla strips just before serving to keep them crispy. The slow cooker makes the broth even more flavorful!
What's the best way to reheat leftovers?
Reheat the soup (without tortilla strips) on the stovetop over medium-low heat until steaming. For crispy tortilla strips, fry fresh batches in 350°F oil for 1-2 minutes before serving. Microwaving works for the soup, but the strips will get soggy—better to make fresh!
Can I use flour tortillas instead of corn?
Flour tortillas work great! Cut them into ¼-inch strips and fry just like corn tortillas. They'll be slightly larger but still crispy. For extra flavor, brush them lightly with oil before frying. The texture difference is minimal, so don't worry about switching!
