Soups & Stews
This best taco soup recipe from scratch delivers bold flavors in one pot—crispy tortilla crowns, tender protein, and a rich broth that tastes like a fiesta in your kitchen. The secret lies in building layers of flavor: caramelized onions, smoky spices, and perfectly seasoned meat that melts into the broth.
After years of testing, this version cuts through the noise with a foolproof method that transforms simple ingredients into a restaurant-worthy meal.
What sets this recipe apart is the crispy tortilla crown—a game-changer that adds texture and visual appeal without extra effort. Start with a homemade broth base (or use beef stock) infused with garlic, cumin, and chili powder, then simmer the protein until tender.
The tortilla strips crisp up in seconds under the broiler, topping a soup so flavorful, it feels like a hug in a bowl. Every spoonful delivers a perfect balance of smoky, tangy, and savory notes.
By the time you're done, you'll have a steaming pot of soup loaded with hearty beans, melted cheese, and those golden tortilla strips that shatter at the first bite. The crispy edges contrast beautifully with the creamy broth, while the spices linger on your palate long after the last spoonful.
This isn't just taco soup—it's a full meal experience, ready in under an hour with minimal cleanup.
Serve with extra toppings like avocado, sour cream, or hot sauce for customization, or double the batch for leftovers that reheat just as well. The beauty of this recipe is its flexibility—swap chicken for beef, add corn, or adjust the spice level to suit your taste. Let's get cooking!
Ingredients for best taco soup recipe from scratch
Sixteen ingredients. One pot. A fiesta of flavors that'll make your kitchen smell like a Mexican street corner.
| Ingredient | Amount | Notes |
|---|---|---|
| Ground Beef 🥩 | 1 ½ lb | 80% lean for best flavor |
| Yellow Onions 🧅 | 2 whole | Medium size, diced small |
| Garlic Cloves 🧄 | 6 cloves | Freshly minced for aroma |
| Canned Diced Tomatoes 🍅 | 2 cans | 14.5 oz each, fire-roasted preferred |
| Beef Broth 💧 | 4 cups | Low-sodium preferred |
| Corn Tortillas 🌯 | 8 whole | Small size, cut into strips |
| Black Beans 🫘 | 1 can | 15 oz, drained and rinsed |
| Chili Powder 🌶️ | 2 tbsp | Smoked variety adds depth |
| Ground Cumin 🌿 | 1 tbsp | Toasted for richer flavor |
| Dried Oregano 🍃 | 1 tsp | Mexican oregano preferred |
| Salt 🧂 | 1 ½ tsp | Adjust to taste |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Shredded Cheese 🧀 | 1 ½ cups | Monterey Jack or cheddar |
| Avocado Oil 🫒 | 2 tbsp | For crispy tortillas |
| Lime 🍋 | 1 whole | Juiced for brightness |
The beef is where the magic starts—ground chuck with good marbling gives you that rich, meaty flavor. Costco or local butchers usually have the best quality, but any supermarket ground beef in an 80% lean package will work. Caramelizing the onions first is non-negotiable—it builds that sweet, deep base that makes the whole soup sing. I like to use yellow onions because they caramelize more evenly than red, but red works too if you're in a hurry. The garlic? Freshly minced—no shortcuts here, or you'll taste the difference. For the tomatoes, fire-roasted cans add a smoky depth that regular diced tomatoes can't match.
No beef broth? Homemade chicken broth with a bouillon cube works in a pinch, but it won't be quite as rich. The tortillas are the star of the show—corn tortillas are traditional, but flour works if that's what you've got. Cut them into thin strips (about 1/4-inch wide) for maximum crispiness. The beans? Black beans are classic, but pinto or kidney beans add a nice twist. Short on chili powder? Mix smoked paprika with cayenne for a similar kick. The cheese is where you can get creative—Monterey Jack melts beautifully, but cheddar or even a sprinkle of cotija for tang adds complexity. And if you're worried about the tortillas burning under the broiler, keep an eye on them—they crisp up fast!
This soup tastes even better the next day—double the batch if you can. Store leftovers in the fridge for up to 4 days or freeze for 3 months. The tortilla crowns? Make them fresh if you can—they lose crispiness when reheated, but you can always toast new ones on top when serving. The lime juice should be added right before serving to keep it bright. For extra flavor, save the lime peels and add them to the broth while simmering. And if you're serving a crowd, make the tortilla strips in batches—they burn faster than you think!
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe because it’s actually one-pot—no chopping boards, no extra pans. Brown the beef right in the pot, toss in the onions and garlic, then dump everything else in. That’s it. (Yes, even on a Tuesday night.)
- Layered Umami Bomb: The beef broth and tomatoes simmer down into something deep—not just tomatoey, but rich with that caramelized onion depth. Honestly, the first bite makes me pause. That’s when you know you’ve got it right.
- Leftover Lifesaver: This soup begs to be made in bulk. The flavors only get better the next day, and it reheats like a dream. I’ll be real: my freezer’s got at least three containers of this right now. (My family’s favorite “I’m too tired to cook” meal.)
- Budget-Friendly Flex: Ground beef, canned tomatoes, broth—this feeds four for under $10. Between us, it’s the kind of recipe that makes you feel like you’re treating yourself without the grocery bill guilt. Plus, swap beef for lentils if you’re stretching it further.
Step-by-step instructions for crispy tortilla-crowned fiesta in one pot
This hearty taco soup delivers restaurant-quality flavor with a crispy tortilla crown—every step builds that perfect balance of smoky, tangy, and savory goodness.
🍳 Step 1: Brown the Ground Beef and Sauté Aromatics
Heat the 2 tablespoons avocado oil in a large Dutch oven over medium-high heat. Add the 1.5 pounds ground beef, breaking it apart with a wooden spoon as it cooks. Let it brown undisturbed for 3-4 minutes until no longer pink in the center—this ensures maximum flavor extraction.
Drain most of the fat (leave about 1 tablespoon) and add the 2 whole yellow onions, 6 cloves minced garlic, 2 tablespoons chili powder, 1 tablespoon ground cumin, 1 teaspoon dried oregano, 1.5 teaspoons salt, and 0.5 teaspoon black pepper. Stir constantly for 3-4 minutes until the onions soften and the garlic releases its fragrant aroma. You'll smell that irresistible taco spice building—this is where the magic starts.
🍳 Step 2: Simmer the Soup Base
Pour in the 2 cans fire-roasted diced tomatoes (with juices), 4 cups beef broth, and 1 can drained black beans. Stir well to combine, then bring to a gentle boil. Once boiling, reduce heat to medium-low and let it simmer uncovered for 20 minutes, stirring occasionally. This slow cook time lets all the flavors meld together beautifully—you'll notice the soup deepening in color and developing a rich, smoky aroma.
Taste and adjust seasoning if needed. I usually add a pinch more salt here because the tomatoes and broth can vary in saltiness. The soup should be flavorful but not overwhelming—you want to balance the spices with the natural beefy taste.
🥘 Step 3: Prepare the Tortilla Strips for Crispy Topping
While the soup simmers, cut the 8 whole corn tortillas into ¼-inch wide strips—about 2 inches long each. Heat 1 tablespoon avocado oil in a large skillet over medium-high heat. Working in batches, fry the tortilla strips for 1-2 minutes per batch until golden brown and crispy. They should puff slightly and develop a beautiful toasted color. Transfer to a paper towel-lined plate to drain excess oil, but keep them warm.
Here's the thing—don't skip this crispy step. Those golden tortilla strips are what makes this soup feel like a restaurant dish. They add texture contrast and that satisfying crunch that balances the creamy soup base.
🍽️ Step 4: Assemble and Finish with Cheese and Lime
Return the soup to a gentle simmer. Ladle ½ cup soup into each of 6 bowls, reserving the rest in the pot. Top each serving with ¼ of the crispy tortilla strips and ¼ cup shredded cheese. The cheese will melt slightly from the residual heat, creating a gooey, cheesy blanket over the crispy tortillas—this is the moment that matters.
Finish with a squeeze of juice from 1 whole lime and an extra sprinkle of black pepper. Serve immediately while the tortilla strips are still crispy and the cheese is just starting to melt. The contrast of warm soup, crispy tortillas, and tangy lime creates a perfect bite every time.
Pro Tips For Making Best Taco Soup Recipe From Scratch
- CRISP THE ONIONS FIRST: I used to sauté onions with garlic right away, but they’d just stew in their own moisture and turn mushy. Instead, cook the onions on medium-high until they’re golden brown—almost caramelized—before adding garlic. That deep flavor carries through the whole soup.
- BROWN THE BEEF WELL: Skip the quick sear if you’re in a rush, but don’t let the beef turn pink. Break it into small pieces first, then cook until every surface is deeply browned—this builds the rich, meaty base the soup needs. (Yes, even if it takes 10 extra minutes.)
- SAVE THE TOMATO JUICE: Drain the diced tomatoes and scoop out the juices from the can—there’s usually ½ cup or more. Add it to the broth later; it’s packed with concentrated flavor that’ll make your soup taste homemade, not canned.
- SIMMER LOW AND LONG: After everything’s in the pot, let it bubble hard for 5 minutes to meld flavors, then drop to a low simmer. High heat later will make the soup taste flat. (I learned this the hard way after serving a watery, one-dimensional batch.)
Make-ahead tips for this recipe
Broth Prep Ahead
Make the soup base 2 days ahead for deeper flavor. After simmering the beef, tomatoes, and spices, let it cool completely, then store in an airtight container in the fridge. The flavors intensify as the spices meld—this is when the magic happens!
Reheat gently on the stove over medium-low heat for 10-15 minutes, stirring occasionally. Never microwave—it dulls the spices and makes the tortilla strips soggy. 💫
Protein Prep Shortcut
Brown the ground beef a day ahead and store it in the fridge. The pre-cooked meat adds richer flavor when reheated in the soup—it almost tastes like it was made fresh. Just crumble it back into the pot when you're ready to simmer.
For extra convenience, use pre-cooked shredded chicken instead of beef—it cuts cooking time by 15 minutes while keeping the same hearty texture. 🥩
Tortilla Prep Hack
Cut all tortilla strips the night before and store them in a ziplock bag with a paper towel to absorb moisture. When ready to crisp, simply toss them in hot oil for 1-2 minutes—no need to worry about them sticking together.
For even faster prep, bake them at 375°F for 5-7 minutes on a parchment-lined tray. This method works perfectly for batch cooking and keeps them crispy for up to 3 hours at room temperature. 🌯
Freezer-Friendly Base
Freeze the fully assembled soup (without tortilla strips) in quart-sized freezer bags for up to 3 months. When ready to serve, thaw overnight in the fridge, then reheat on the stove. The texture holds up surprisingly well—just add fresh tortilla strips and cheese when serving.
For best results, label the bags with the date and reheat only once. This is my go-to for weeknight dinners when I'm short on time. ❄️
Cheese Storage Tip
Shred your cheese right before serving to prevent it from turning rubbery when reheated. Store pre-shredded cheese in the freezer to keep it fresh longer—it stays crisp and melts beautifully. For extra cheesy flavor, sprinkle ½ cup of shredded cheese into the pot while reheating, stirring until melted.
This creates a creamy, velvety texture that pairs perfectly with the crispy tortillas. 🧀
Lime Brightness Boost
Zest the lime before juicing and store the zest in a small container in the fridge for up to 3 days. Add it to the soup while reheating for an instant bright, citrusy kick. The zest contains essential oils that enhance the overall flavor profile.
If you're prepping ahead, store the lime juice separately and add it just before serving to maintain maximum freshness. This simple trick makes all the difference! 🍋
Nutrition facts
Frequently asked questions
Can I make this recipe vegetarian?
Swap the ground beef for 1 can of black beans (extra for protein) or 1.5 cups of crumbled tempeh or chickpeas. Boost the flavor with 1 tablespoon soy sauce or liquid smoke to mimic the meaty depth. The tortilla crown and cheese will still make it hearty and satisfying.
How do I keep the tortilla strips crispy when serving?
Broil them for 1-2 minutes right before serving—just arrange the strips on a baking sheet and watch closely. For extra insurance, sprinkle them with 1 teaspoon cornstarch before crisping. If reheating leftovers, make fresh tortilla strips and add them to each bowl to maintain that satisfying crunch.
What's the best way to adjust the spice level?
Start with the 2 tablespoons chili powder and 1 tablespoon cumin as written. For mild heat, reduce the chili powder to 1 tablespoon and add ½ teaspoon cayenne for a subtle kick. For extra spice, increase chili powder to 3 tablespoons and add 1 teaspoon smoked paprika. Always taste as you go!
Can I make this soup in a slow cooker?
Yes! Brown the beef and sauté aromatics first, then transfer everything (except tortilla strips) to the slow cooker. Cook on low for 6-8 hours or high for 3-4 hours. The flavors will develop beautifully, but the texture might be slightly thicker. Stir in ½ cup beef broth if needed before serving. Add crispy tortilla strips just before eating.
Why does my soup taste bland?
Most likely, the spices weren't toasted enough. Next time, dry-toast the cumin and chili powder in a pan for 30 seconds before adding to beef. Also check your salt—taste the broth before adding beans and adjust with ½ teaspoon at a time. A splash of lime juice or hot sauce can also brighten flavors.
