Soups & Stews
This best taco soup recipe from scratch delivers bold flavors in a single pot—smoky spices, tender meat, and crunchy toppings coming together for a hearty meal.
The secret lies in building layers of flavor: charred onions and garlic form the base, while cumin, chili powder, and a splash of beer deepen the complexity. I've perfected this version to avoid the mushy beans and bland broth common in simpler recipes.
The recipe starts with ground beef (or chicken) browned until crispy, then simmered with onions, garlic, and a blend of spices until fragrant. Beans and diced tomatoes join the pot, cooking down into a rich, savory broth that's neither too thin nor too thick.
The result is a soup with bold, smoky depth that tastes like a taco night in every spoonful.
What sets this apart is the balance of textures—tender meat, hearty beans, and optional toppings like shredded cheese, sour cream, or crushed tortilla chips for crunch. It's the kind of soup that warms you up while satisfying cravings, and it comes together in under an hour.
Perfect for feeding a crowd or meal prepping for the week.
For dietary flexibility, swap beef for black beans or lentils, and use vegetable broth instead of beef. The flavor remains rich and satisfying, proving this recipe adapts effortlessly. Let's get cooking—your taste buds will thank you.
Ingredients for best taco soup recipe from scratch
Bold flavors start with these 15 ingredients—smoky, spicy, and packed with texture.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef (80/20) 🥩 | 1 ½ lb | Browned until crispy |
| Yellow Onions 🧅 | 2 whole | Charred for depth |
| Garlic Cloves 🧄 | 6 cloves | Minced for aromatic base |
| Diced Tomatoes (28 oz can) 🍅 | 1 can | San Marzano preferred |
| Kidney Beans (15 oz can) 🌱 | 2 cans | Drained, not mushy |
| Beef Broth (low-sodium) 💧 | 3 cups | Homemade or high-quality |
| Light Beer (optional) 🍺 | ½ cup | Mexican lager preferred |
| Chili Powder 🌶️ | 2 tbsp | Smoked variety for depth |
| Ground Cumin 🌿 | 1 tbsp | Toasted for warmth |
| Dried Oregano 🍃 | 1 tsp | Mexican preferred |
| Cayenne Pepper 🔥 | ½ tsp | Adjust for heat |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Cornstarch 🌾 | 1 tbsp | For thickening broth |
| Fresh Cilantro 🌿 | ¼ cup | Chopped for garnish |
The beef is non-negotiable for that deep, meaty flavor—80/20 fat ratio keeps it juicy. Costco or Trader Joe's usually have the best prices for ground beef, and look for packages labeled with the fat percentage. Char the onions and garlic until blackened for that smoky taco stand vibe (don't skip this—it's everything!). For the beans, low-sodium canned is a must unless you're using homemade. I always grab San Marzano tomatoes when I'm at Whole Foods, but any good-quality canned tomatoes work in a pinch.
No chili powder? Smoked paprika plus a pinch of cayenne gets you close. Fresh cilantro wilting? Dried oregano at half the amount keeps the flavor. Swapping beef for beans? Black beans or lentils work perfectly—just add them with the broth. The beer is optional but adds that malty depth; Mexican lager like Modelo works best. For a vegetarian version, use vegetable broth and skip the beef entirely. Cornstarch is the secret to that perfect broth consistency—don't substitute flour or it'll get cloudy.
This soup tastes even better the next day once all the flavors meld. Store leftovers in the fridge for up to 5 days, or freeze for 3 months. I always make a double batch—one for dinner, one for lunches. The broth thickens as it cools, so add a splash of water or broth when reheating. Garnish with extra cilantro, shredded cheese, or crushed tortilla chips right before serving—crunch is key!
Why You'll Love This Recipe
- Here’s what sold me: a single batch feeds my family of four and leaves enough for two more lunches. The kidney beans stretch the meal, the tomatoes keep it fresh-tasting, and I’m not breaking the bank on specialty ingredients. Win.
- Fewer Ingredients, Bigger Payoff: Honestly, I swear by this recipe because it’s that good with just five core ingredients—no fancy pantry list. The 80/20 ground beef adds fat for richness while browning, and those diced tomatoes? They’re the secret sauce for a naturally tangy, thick broth without extra work.
- Garlic Bomb Every Time: Between us, the garlic cloves here aren’t just chopped—they’re sizzled until they’re golden and fragrant. That crispy edge with the creamy center? Chef’s kiss. Plus, the onions caramelize right in the pot, so you’re not stuck with raw onion flavor.
- Lunch or Dinner, No Excuses: I make this for my book club (yes, even on a Tuesday night) and it’s just as welcome in a thermos for work as it is in bowls at home. The beans hold up for days, and the beef stays tender—perfect for reheating without drying out.
Step-by-step instructions for smoky spice and crunch in one pot
Here's how to build layers of flavor that make this taco soup unforgettable.
Build the Flavor Foundation with Crispy Beef and Charred Aromatics
Heat a large Dutch oven over medium-high heat and add the 1.5 lb ground beef (80/20). Break it apart with a wooden spoon and cook for 5-6 minutes until it loses its raw color and starts to crisp at the edges. This is where all the deep, meaty flavors begin.
Push the beef to one side of the pot and add 2 whole yellow onions, cut into wedges. Cook them for 8-10 minutes until they develop deep brown char marks. Here's the thing—those charred spots pack serious flavor. Add 6 cloves garlic, minced, and cook for 30 seconds just until fragrant. Don't let the garlic burn, or it'll turn bitter and ruin your whole dish.
Develop the Spice Base and Simmer the Broth
Lower the heat to medium and sprinkle in 2 tbsp chili powder, 1 tbsp ground cumin, 1 tsp dried oregano, 0.5 tsp cayenne pepper, 1.5 tsp salt, and 0.5 tsp black pepper. Stir everything together and let it cook for 1 minute until the spices are toasted and aromatic. This step is what transforms your soup from good to extraordinary.
Pour in 3 cups beef broth and the 0.5 cup light beer (if using) and bring to a gentle simmer. Add the 1 can diced tomatoes and let everything cook together for 10 minutes. The tomatoes will soften and release their sweetness, while the spices meld into a cohesive flavor profile. This is where the magic really starts to happen.
Thicken and Finish with Beans and Cornstarch
Drain and rinse the 2 cans kidney beans thoroughly to remove any excess sodium. Add them to the pot along with the 1 tbsp cornstarch mixed with 2 tablespoons of cold water. Stir well and let the soup simmer for 10-12 minutes until it thickens slightly. You want it to coat the back of a spoon but still be easy to ladle.
Taste and adjust the seasoning if needed. I usually add a pinch more salt or a dash of cayenne for extra heat. The soup should be rich, smoky, and perfectly balanced between the earthy beans, the meaty beef, and the bright tomatoes. If it's too thick, stir in a splash of hot water to reach your desired consistency.
Garnish and Serve with Fresh Herbs
Remove the pot from heat and let the soup rest for 5 minutes to allow the flavors to fully meld. Before serving, stir in the 0.25 cup fresh cilantro, chopped. The bright, citrusy notes of the cilantro cut through the richness of the soup and add a fresh finish. I like to serve it immediately while the soup is hot and the flavors are at their peak.
Ladle the soup into bowls and serve with tortilla chips on top for that satisfying crunch. The contrast between the warm soup and the cool, crispy chips is what makes this recipe truly special. Each bite delivers layers of texture and flavor that keep you coming back for more.
Pro Tips For Making Best Taco Soup Recipe From Scratch
- CRISP THE ONIONS FIRST: I learned this the hard way—sautéing onions with garlic at the same time means they’ll steam instead of caramelize. Get those onions golden brown (about 8-10 minutes on medium-high) before adding garlic, or your soup will taste blander. The extra effort makes a real difference in flavor depth.
- BREAK UP THE BEANS: Drain those kidney beans but don’t rinse them—they’ll dilute the broth. Instead, mash about half of them with a fork or potato masher before adding to the pot. This thickens the soup naturally and gives it that hearty, textured consistency without extra cornstarch.
- SIMMER LOW AND LONG: After adding the diced tomatoes and beans, resist the urge to boil hard. Let it simmer uncovered at a gentle bubble (about 20-25 minutes) to let flavors meld. I used to rush this, and the soup always tasted flat—patience here guarantees a richer, more cohesive taste.
- TOAST THE GARLIC: After browning the onions, pull the pan off heat, add 4-5 minced garlic cloves, and let them sit for 30 seconds—they’ll soften and release aroma without burning. Then stir and cook another 30 seconds. This prevents that bitter, burnt garlic flavor that ruins so many dishes. (Yes, even if you’re impatient like me.)
Flavor customization for this dish
Spicy Kick Boost
For extra heat, add 1 tsp smoked chipotle powder or ½ tsp habanero powder with the chili powder. If you love fire, stir in 1-2 diced jalapeños with the tomatoes—they’ll soften beautifully. I’ve found that Penzeys brand chipotle powder adds a smoky depth that’s perfect for taco soup. 🌶️
Creamy Comfort Twist
Stir in ½ cup sour cream or ¼ cup Mexican crema at the end for a creamy, tangy contrast. For extra richness, blend ½ cup Greek yogurt with 1 tbsp lime juice and swirl it into each bowl.
This balances the heat and adds a silky texture. I like to serve it with a dollop on top for dipping tortilla chips. 🥄
Cheesy Crunch Topping
Sprinkle ½ cup shredded Monterey Jack or cheddar cheese on top while serving—it melts beautifully into the hot soup. For extra crunch, add ¼ cup crushed tortilla chips or toasted pepitas. I always keep a stash of Kraft shredded cheese in my pantry for quick melting. 🧀
Smoky Chipotle Swap
Replace the chili powder with 2 tbsp chipotle powder for a deeper, smokier flavor. Add 1-2 chipotle peppers in adobo sauce (minced) to the pot with the tomatoes.
This gives the soup a rich, smoky depth that’s reminiscent of a backyard taco stand. I love using La Costeña brand chipotles for this. 🔥
Vegetarian Protein Swap
Skip the beef and use 1.5 cups cooked black beans or 1 cup lentils for a hearty vegetarian version. Add 1 can corn (drained) for sweetness and texture.
For extra umami, stir in 1 tbsp soy sauce or 1 tsp liquid smoke. This keeps the soup filling and flavorful without meat. 🌱
Citrus Brightness
Finish with a squeeze of lime juice or orange juice to brighten the flavors. I like to serve wedges on the side so everyone can add as much as they like. A sprinkle of zest from lime or orange adds a fresh, aromatic touch. 🍋
Nutrition facts
Frequently asked questions
Can I make this taco soup in a slow cooker?
Brown the beef and char the onions/garlic in a skillet first, then transfer everything to your slow cooker. Add all remaining ingredients (except cornstarch) and cook on low for 6-7 hours or high for 3-4 hours. Stir in the cornstarch slurry during the last 30 minutes of cooking. The slow cooker version actually gets deeper flavor from the long simmer.
Why do you rinse the beans before adding them?
Rinsing removes excess sodium from canned beans, which prevents your soup from becoming overly salty. It also helps maintain the beans' texture rather than making them mushy. Pro tip: Pat them dry with a paper towel before adding to prevent the broth from thinning too quickly.
What's the best way to store leftovers?
Let the soup cool completely, then store in an airtight container in the fridge for up to 5 days. For freezing, portion into individual containers and freeze for up to 3 months. The broth may thicken when reheated, so add a splash of water or broth when warming. Reheat on the stove over medium-low heat until bubbling.
Can I make this soup without beer?
Yes! Skip the beer and add an extra ½ cup beef broth instead. For a non-alcoholic alternative, use apple juice or ginger ale for a subtle sweetness that complements the spices. The beer adds depth but isn't essential for great flavor.
How do I fix if my soup is too thin?
Stir in 1 tbsp cornstarch mixed with 2 tbsp cold water and simmer for 5 minutes until thickened. If it's still too thin, repeat with another ½ tbsp cornstarch. For a quicker fix, stir in 1 tbsp tomato paste or 1 mashed potato and simmer until dissolved.
