Soups & Stews
This black bean and tomato soup recipe delivers deep, smoky warmth with every spoonful—where earthy cumin meets rich cocoa for a flavor profile that lingers like a favorite memory. ✨ The secret lies in slow-simmered beans and tomatoes, caramelized with aromatic spices until they meld into a velvety, hearty broth that’s both comforting and sophisticated.
Perfect for chilly evenings or meal prep, this soup builds layers of flavor through careful sautéing of onions, garlic, and cumin before adding beans and tomatoes to develop depth. A touch of cocoa powder adds complexity without overpowering, while lime juice brightens the finish—balancing the richness with a zesty kick.
What you’ll end up with is a restaurant-quality soup that’s creamy yet light, packed with plant-based protein and fiber, and ready in under an hour. The texture is velvety, the aroma irresistible, and the taste? Pure comfort in a bowl.
Garnish with fresh cilantro, avocado slices, or a drizzle of Greek yogurt for extra richness. This soup scales effortlessly for crowds or leftovers, making it the ultimate weeknight solution—or the star of your next gathering.
Ingredients for black bean and tomato soup
These 14 ingredients create a velvety, smoky soup that tastes like a hug in a bowl.
| Ingredient | Amount | Notes |
|---|---|---|
| Black Beans 🌱 | 2 cups | Cooked or canned, drained and rinsed |
| Crushed Tomatoes 🍅 | 2 cups | San Marzano preferred for sweetness |
| Yellow Onion 🧅 | 1 whole | Diced, medium size |
| Garlic Cloves 🧄 | 4 cloves | Minced, fresh preferred |
| Ground Cumin 🌿 | 1 tbsp | Toasted for deeper aroma |
| Cocoa Powder 🍫 | 1 tbsp | Unsweetened, high-quality |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Fresh Lime 🍋 | 1 whole | Juiced, for brightness |
| Fresh Cilantro 🌿 | ¼ cup | Chopped, for garnish |
| Avocado Oil 🫒 | 2 tbsp | For sautéing, high smoke point |
| Sea Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Lime Zest 🍋 | 1 tsp | Optional, for extra brightness |
| Coconut Milk 🥥 | ½ cup | Full-fat for creaminess |
The black beans are the heart of this soup—look for organic or heirloom varieties at Whole Foods or your local Latin market for deeper flavor. Canned beans work fine (just rinse them), but if you're cooking from dry, soak overnight for best texture. The crushed tomatoes? San Marzano is worth the splurge—sweeter and less acidic. Toast your cumin seeds in a dry pan for 30 seconds before grinding; that extra step makes all the difference. Penzeys or bulk bins at natural grocery stores have the best quality spices, but regular grocery store brands work in a pinch.
No San Marzano tomatoes? Fire-roasted crushed tomatoes from the store add smokiness without extra effort. Short on cumin? Smoked paprika at half the amount mimics that depth. The cocoa powder is non-negotiable for that rich, almost chocolatey note—Dutch-processed is best. No fresh cilantro? Dried oregano at one-third the amount works, but fresh is worth hunting down. The avocado oil should be cold-pressed; Trader Joe's has great options. For extra creaminess, swap coconut milk for cashew cream (blend soaked cashews with water).
This soup tastes even better the next day—make a double batch for leftovers. Stores for 5 days in the fridge or 3 months frozen. Reheat gently on the stove with a splash of water to restore creaminess. Garnish with avocado slices (add just before serving) or a dollop of vegan Greek yogurt. Freeze in portions for quick lunches—just thaw overnight in the fridge.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe—just toss everything into a pot, stir, and let it simmer. No chopping, no fuss, and zero dishes beyond that one pot. The crushed tomatoes and onions soften into a rich base while I’m still deciding what to watch on TV.
- Cumin Kiss: That earthy cumin? It’s the secret weapon here. A single teaspoon turns this soup from good to ridiculously good—warm, slightly smoky, and lingering on your tongue long after the last spoonful. Honestly, I’d argue it’s the star of the show.
- Lunchbox Hero: Between us, this soup is my go-to for meal prep. Pack it in jars, and it stays fresh for days—perfect for lunches or when I need to feed the family without spending hours in the kitchen. The beans hold up, the flavors deepen, and no one complains (yes, even on a Tuesday night).
- Pantry Staple: I keep a can of black beans and crushed tomatoes on hand just for this. It’s my budget-friendly, protein-packed answer to "what’s for dinner?"—especially when I’m low on groceries but still want something hearty. Plus, the leftovers? Even better the next day.
Step-by-step instructions for black bean and tomato soup
Here's how to create a rich, smoky soup that balances earthy cocoa with bright lime and creamy coconut.
🍳 Step 1: Sauté Aromatics Until Fragrant
Heat the 2 tablespoons avocado oil in a large pot over medium heat until shimmering. Add the 1 whole diced yellow onion and cook for 5 minutes until soft and translucent, stirring occasionally. Here's the thing—don't rush this step. You want the onion to really sweeten and caramelize slightly before moving on.
Add the 4 minced garlic cloves and 1 tablespoon ground cumin to the pot. Stir constantly for 30 seconds until you can smell that deep, toasty aroma. The cumin should be sizzling gently—not burning. If it starts to darken too quickly, reduce the heat to medium-low. This is where all the flavor magic begins.
🍳 Step 2: Build the Smoky Base
Sprinkle in the 1 tablespoon cocoa powder and stir vigorously for 1 minute until completely dissolved and the mixture turns a rich chocolate brown color. I know it seems weird to add cocoa to soup, but trust me—it deepens the earthy notes and balances the acidity beautifully. Add the 2 cups crushed tomatoes and cook for another 3 minutes until the mixture thickens slightly and the raw tomato taste mellows.
Pour in the 4 cups vegetable broth and bring everything to a gentle boil. Once boiling, reduce heat to medium-low and let it simmer uncovered for 15 minutes. This simmering time allows all the flavors to meld together. You'll notice the soup developing a beautiful reddish-brown hue and a rich, aromatic steam rising from the pot.
👨🍳 Step 3: Add Beans and Seasonings
Stir in the 2 cups black beans (drained and rinsed if canned) and the 1.5 teaspoons sea salt. Let the soup simmer for another 10 minutes until the beans are heated through and the flavors have really come together. Taste the soup at this point—you should notice the deep, smoky cumin, the slight bitterness from the cocoa, and the natural sweetness of the tomatoes.
Add the 0.5 teaspoon black pepper and adjust the seasoning if needed. I usually add a pinch more salt at this stage because the beans and tomatoes can vary in saltiness. The soup should be well-seasoned but not overwhelmingly salty. Real talk: this is where you can really taste the difference between good-quality ingredients and basic ones.
🥘 Step 4: Finish with Lime and Creaminess
Remove the pot from heat and stir in the 0.5 cup coconut milk. The coconut milk will give the soup a lovely velvety texture without making it too heavy. Add the juice of the 1 whole fresh lime and the 1 teaspoon lime zest. The lime zest adds a bright, citrusy aroma that cuts through the richness of the cocoa and coconut milk. Give it a good stir to distribute everything evenly.
Let the soup sit off the heat for 5 minutes to allow the flavors to meld completely. This resting time is crucial—it lets the lime juice fully infuse and the coconut milk fully emulsify with the rest of the soup. You'll notice the soup becomes even more fragrant and cohesive during this time.
🍽️ Step 5: Serve with Fresh Garnish
Ladle the soup into bowls and garnish each serving with 1 tablespoon chopped fresh cilantro. The cilantro adds a fresh, slightly peppery note that contrasts beautifully with the rich, smoky flavors. Serve immediately while the soup is hot, with crusty bread on the side to soak up every last drop of that delicious broth.
Each spoonful should deliver a perfect balance of smoky cumin, deep cocoa richness, bright lime acidity, and creamy coconut milk. The texture should be hearty yet smooth, with tender black beans and juicy tomato pieces throughout. If you made it this far, you've just created a soup that's far more complex and satisfying than your average black bean recipe.
Pro Tips For Making Black Bean And Tomato Soup
- Sear the Onion First: Don’t just toss chopped onion into the pot—take 3 minutes to cook it in oil over medium-high heat until it’s soft and just starting to brown. That caramelized flavor makes the whole soup richer, and it prevents the onions from turning mushy later. (Yes, even if you’re impatient like me.)
- Toast the Cumin: Heat the ground cumin in the pot for 30 seconds before adding anything else—just until you smell that warm, nutty aroma. This simple step deepens the spice’s flavor way more than sprinkling it in cold. I learned this the hard way when my soup tasted flat until I tried it.
- Simmer, Don’t Boil: Keep the soup at a gentle simmer (tiny bubbles, not a rolling boil) after adding the tomatoes and beans. Boiling can turn the tomatoes mealy and make the beans break apart. A low-and-slow approach keeps everything tender and cohesive—your future self will notice the difference.
- Use Canned Beans, But Drain Smart: Skip rinsing the canned black beans—just drain them well—but save a splash of that starchy liquid (about ¼ cup) and stir it back in at the end. That extra umami and thickness makes the soup feel more substantial without extra effort. (Yes, it sounds weird, but it works.)
Regional styles of these flavors
Mexican-Inspired Style
This version keeps the smoky cumin and cocoa but adds 1 diced chipotle pepper in adobo sauce when sautéing the onions. The chipotle brings deep, smoky heat that pairs perfectly with the cocoa's richness.
I like to finish with crumbled queso fresco and diced avocado for a Southwestern twist that feels like a hug from Mexico. Serve with warm corn tortillas for dipping. 🌶️
Caribbean Fusion Twist
For a tropical take, swap the cumin for 1 tsp ground allspice and add ½ cup diced bell peppers with the onions. Stir in 1 can (14 oz) coconut milk instead of the regular portion, and finish with 1 tbsp grated ginger and ½ cup fresh cilantro.
This version has a vibrant, almost curry-like depth that works beautifully with jerk seasoning on the side. 🌴
Spanish-Influenced Version
Transform this into a Spanish-style fabada by adding ½ cup white beans along with the black beans and using 1 tsp smoked paprika instead of cumin. Deglaze the pot with ½ cup dry white wine after sautéing the aromatics for extra depth.
Finish with 1 tbsp sherry vinegar and a sprinkle of fresh parsley. This version tastes like a cozy tapas bar in Madrid. 🍷
Italian Adaptation
For an Italian-inspired twist, replace the cocoa with 1 tsp dried oregano and add 1 diced celery stalk with the onions. Stir in 1 cup diced cannellini beans along with the black beans, and finish with ½ cup grated Parmesan (or nutritional yeast for vegan).
A splash of red wine while simmering adds complexity that feels right at home in a Tuscan kitchen. ✨
Smoky Grillhouse Style
Take this soup to the grill by adding 1 tbsp liquid smoke to the broth and finishing with crumbled vegan bacon and pickled jalapeños. Serve in a cast-iron skillet with a side of grilled cornbread for a soulful, smoky experience.
This version tastes like it belongs at a Texas BBQ joint. 🔥
Nutrition facts
Frequently asked questions
Can I make this soup without coconut milk?
If you're avoiding coconut or want a different texture, try ½ cup cashew cream (blend soaked cashews with water) or ¼ cup Greek yogurt (or vegan alternative) for creaminess. For a lighter version, skip it entirely—the soup will still be flavorful, just slightly thinner. The coconut adds richness, but the lime and spices keep it balanced.
How do I make this soup spicier?
Add ½ teaspoon cayenne pepper or 1 diced chipotle pepper in adobo sauce when sautéing the onions. For heat lovers, stir in 1 tablespoon hot sauce at the end or serve with pickled jalapeños on the side. Remember, you can always adjust spice levels to taste—start with less and add more gradually.
Can I use dried black beans instead of canned?
Yes! If using dried beans, soak them overnight in plenty of water (or quick-soak by boiling for 2 minutes, then letting them sit for 1 hour). Drain and rinse before adding to the soup. Dried beans require 1½ to 2 hours of simmering until tender—adjust the recipe's simmering time accordingly. The flavor will be even more concentrated and satisfying.
Why did my soup turn out too thick?
This usually happens if the beans weren't properly drained or if the soup simmered too long. Fix it by stirring in ½ to 1 cup hot vegetable broth until you reach your desired consistency. For prevention, always rinse canned beans thoroughly and follow the simmering times precisely. The cocoa powder can also thicken the soup slightly, so start with less if you prefer a looser texture.
How can I make this soup ahead of time?
This soup tastes even better the next day! Let it cool completely, then store in an airtight container in the fridge for up to 5 days. For freezing, portion into containers and freeze for up to 3 months. Thaw overnight in the fridge, then reheat gently on the stove with a splash of water or broth to restore creaminess. Garnish with fresh cilantro or avocado just before serving.
