Bean Soup from Scratch Recipe: Slow-Simmered Depth With Earthy Bean Richness

Soups & Stews

Bean Soup from Scratch Recipe: Slow-Simmered Depth With Earthy Bean Richness

This bean soup from scratch recipe transforms simple ingredients into a deeply satisfying, slow-simmered masterpiece that captures the soul of rustic kitchen traditions.

The secret lies in proper bean preparation—whether you choose the traditional overnight soak or the modern quick-soak method—both yield tender, flavorful beans that form the heart of this nourishing soup.

What sets this recipe apart is the layered depth created through careful sautéing of aromatics and the development of a rich, aromatic broth that builds complexity over time. The slow simmering process allows all flavors to meld together harmoniously, resulting in a soup that's both hearty and comforting.

I've included adaptable thickening options to ensure it works perfectly for gluten-free diets as well.

By the time you're done, you'll have a bowl of bean soup with a velvety texture, rich umami flavor, and just the right balance of earthiness from the beans and brightness from fresh herbs.

The aroma alone will have everyone gathering around the table, and each spoonful delivers that perfect combination of warmth and satisfaction.

This recipe is designed to be both approachable for beginners and refined enough to impress seasoned cooks. Whether you're preparing for a family dinner or meal prepping for the week, this bean soup delivers restaurant-quality results with minimal effort. Let's get started on creating your perfect bowl of comfort.

👨‍🍳
Difficulty
Medium
🔥
Calories
Low Cal

Ingredients for bean soup from scratch

Transform simple pantry staples into a restaurant-quality bean soup with deep, layered flavors.

Ingredient Amount Notes
Dried White Beans 🌾 1 ½ cups Unsoaked or pre-soaked overnight
Yellow Onion 🧅 1 whole Diced, medium size preferred
Carrots 🥕 2 medium Peeled and chopped into chunks
Celery Stalks 🧄 3 whole Chopped, including leafy tops
Garlic Cloves 🧄 4 cloves Minced or finely chopped
Extra-Virgin Olive Oil 🫒 ¼ cup For sautéing aromatics
Vegetable Broth 💧 6 cups Low-sodium preferred
Canned Diced Tomatoes 🍅 14 ½ oz San Marzano preferred, no added salt
Fresh Thyme 🌿 ¼ cup Leaves only, stems removed
Bay Leaves 🍃 2 whole Dried, removed before serving
Smoked Paprika 🌶️ 1 tsp For depth and smokiness
Ground Cumin 🌿 ½ tsp Toasted for enhanced aroma
Gluten-Free Flour Blend 🌾 2 tbsp For optional thickening
Fresh Parsley 🌿 ¼ cup Chopped, for garnish
Lemon Juice 🍋 1 tbsp Freshly squeezed

The beans are the foundation—dried white beans deliver the most satisfying texture, but cannellini or pinto work equally well. Soaking overnight softens them perfectly, but the quick-soak method (boiling for 2 minutes) saves time. Trader Joe's and Whole Foods carry organic dried beans in bulk, which stay fresh longer. For the aromatics, yellow onions should be sweet, not bitter—pick firm ones with dry skins. Celery's leafy tops add extra flavor, so don't trim them completely. The San Marzano canned tomatoes are worth the investment; their sweetness balances the earthiness of the beans.

No fresh thyme? Dried thyme at one-third the amount works in a pinch, though fresh imparts brighter notes. Substituting vegetable broth with water plus 1 tsp bouillon keeps the recipe vegan while adding depth. For thickening, mush the beans slightly with a potato masher instead of flour for a naturally gluten-free option. The smoked paprika adds complexity—Penzeys carries excellent varieties if you want to experiment. If you're short on carrots, sweet potatoes or butternut squash add natural sweetness and creaminess to the soup.

This soup tastes even better the next day as flavors meld. Store in an airtight container in the fridge for up to 5 days or freeze for 3 months. For meal prep, portion into containers with a layer of lemon juice on top to preserve freshness. The herbs can be added fresh at serving time if preferred. Double the batch—it reheats beautifully and makes an excellent lunch for the week. Leftovers gain richness with each reheating, making this a perfect make-ahead dish.

❤️

Why You'll Love This Recipe

  • No-Fuss Pantry Staples: I swear by this recipe because it’s the kind of meal that doesn’t demand a shopping spree. You’re probably already staring at dried beans, onions, and carrots in your cupboard—no fancy ingredients needed. The celery and garlic just add that je ne sais quoi without complicating things.
  • Umami Bomb: That slow simmer? It turns dried beans into something ridiculously tender, while the onions and carrots caramelize into sweet, savory perfection. Honestly, the garlic—when you toast it first—adds a depth that makes this soup taste like it simmered all day (even if it didn’t).
  • Lunchbox Hero: Between us, this soup is my go-to for meal prep. The flavors only get better the next day, and it reheats like a dream. Pack it in a thermos for work or toss it into a bento box—it’s hearty enough to keep you full, but light enough to not weigh you down.
  • Budget Magic: A single bag of dried beans stretches this recipe into four servings, and the veggies? You can use whatever’s on sale. I’ve made this for under $2 per bowl, and it still feels like a restaurant-quality meal. Not the prettiest, but the taste makes up for it every time.

Step-by-step instructions for slow-simmered bean soup

This method transforms simple ingredients into a deeply flavorful bean soup with rich texture and layered aromatics.

1

Prepare the Dried Beans for Maximum Tenderness

Begin by rinsing the 1.5 cups dried white beans under cold water to remove any debris. For best results, I recommend soaking them overnight in plenty of cold water (at least 8 cups) or using the quick-soak method: cover the beans with water in a pot, bring to a boil for 2 minutes, then remove from heat, cover, and let sit for 1 hour. Soaking reduces cooking time and prevents the beans from becoming tough.

After soaking, drain the beans and set them aside. The key here is proper hydration—they should be plump and tender when you handle them. If you're short on time, you can use the beans unsoaked, but expect an additional 30-45 minutes of simmering time. The beans are the foundation of your soup, so don't rush this step—proper preparation ensures a creamy, satisfying texture.

2

Build the Aromatic Base with Sautéed Vegetables

Heat the 0.25 cup extra-virgin olive oil in a large Dutch oven or heavy pot over medium heat. Add the diced yellow onion, chopped carrots, and chopped celery stalks, stirring occasionally for 8-10 minutes until the vegetables soften and the onion becomes translucent. This process, called "sweating," develops their natural sweetness without browning.

Add the minced garlic cloves, 1 tsp smoked paprika, and 0.5 tsp ground cumin, stirring constantly for 1 minute until fragrant. The paprika and cumin add depth and warmth that will permeate the entire soup. Watch carefully—garlic burns quickly, so remove the pot from heat if it starts to darken. This aromatic base is the flavor backbone of your soup, so take your time here.

3

Simmer the Soup Until Beans Are Perfectly Tender

Add the soaked beans, 6 cups vegetable broth, 14.5 oz canned diced tomatoes, 0.25 cup fresh thyme leaves, and 2 whole bay leaves to the pot. Bring to a boil, then reduce heat to low and let it simmer uncovered for 1 hour to 1 hour 15 minutes, stirring occasionally. You want the beans to become fork-tender but not mushy—test by tasting one or checking if it crushes easily between your fingers.

Here's the thing—don't skip the uncovered simmering. This allows excess moisture to evaporate, concentrating the flavors and preventing a watery soup. If the liquid level gets too low, add hot water as needed. The beans should be fully tender but still hold their shape, with a creamy texture when mashed slightly with a fork.

4

Thicken and Season to Perfection

In a small bowl, whisk together the 2 tbsp gluten-free flour blend with 1 tbsp lemon juice. Slowly whisk this mixture into the simmering soup, stirring constantly for 2-3 minutes until it thickens slightly. This step adds body and balances the richness of the beans. If you prefer a thinner consistency, you can skip the flour or reduce the amount to 1 tbsp.

Taste and adjust seasoning with salt if needed (remember, your broth may already be seasoned). The soup should have a balance of earthy bean flavor, smoky paprika, and bright lemon notes. Remove the bay leaves before serving, as they're not meant to be eaten. The lemon juice brightens the dish, cutting through the richness of the beans and tomatoes.

5

Finish and Serve with Fresh Herbs

Stir in the 0.25 cup chopped fresh parsley just before serving. This adds a fresh, vibrant contrast to the rich, earthy flavors of the soup. Ladle the soup into bowls and serve immediately while hot. The parsley not only enhances the presentation but also adds a subtle herbal note that complements the other ingredients.

For an extra touch, I like to serve this soup with crusty gluten-free bread to soak up every last drop of that flavorful broth. The combination of tender beans, aromatic vegetables, and well-balanced seasoning makes this a hearty, satisfying meal that's perfect for chilly days or as a comforting weeknight dinner.

👨‍🍳

Pro Tips For Making Bean Soup From Scratch

  • SOAK BEANS OVERNIGHT: I learned this the hard way—rushing soaks with hot water just makes the beans tough. Cold water overnight (or at least 8 hours) softens them perfectly, and you won’t waste energy simmering rock-hard beans later. Pro tip: Use a big bowl, cover with 2 inches of water, and add a pinch of baking soda to help break down the skins.
  • SAUTÉ ONIONS LOW AND SLOW: Cranking the heat for caramelized onions here is a rookie move. Sauté the onions on medium-low for 10-12 minutes until they’re translucent but not browned—you’ll blend them into the soup anyway. Browned onions add bitterness, and you’ll regret it when the soup tastes harsh. Trust me, slow wins.
  • CHOP VEGETABLES UNIFORM: Unevenly chopped carrots and celery mean some pieces stay crunchy while others turn to mush. Aim for ¼-inch dice—small enough to cook through but big enough to hold shape. Skip the food processor; your knife is faster and gives better control. (Yes, even if you’re impatient like me.)
  • SALT THE WATER LATE: Adding salt to the beans too early makes them tough. Wait until the beans are simmering for 15 minutes before salting—this lets them soften first. Then add salt to taste, along with any herbs or aromatics. Your grandmother swore by this, and she was right: timing matters more than you think.

Flavor customization for this dish

Smoky Heat Boost

For a bold, smoky kick, increase the smoked paprika to 2 teaspoons and add ½ teaspoon cayenne pepper when sautéing the aromatics. If you love heat, stir in 1 tablespoon hot sauce (like Cholula or Tabasco) during the final 5 minutes of simmering.

This transforms the soup into a fiery, Southwestern-inspired version that still maintains its creamy texture. 🌶️

Citrus Brightness

Swap the lemon juice for orange juice or add zest from 1 orange to the simmering soup for a sweeter, more complex brightness. I also like to finish with a sprinkle of orange zest on top—it pairs beautifully with the earthy beans and adds a refreshing contrast.

For extra zing, add 1 teaspoon grated ginger while sautéing the aromatics.

Herbal Depth

Infuse the soup with fresh herbs like rosemary or tarragon for a sophisticated twist. Add ½ teaspoon dried rosemary with the thyme or 2 sprigs fresh tarragon during the final 10 minutes of simmering.

Remove the tarragon sprigs before serving, but leave the rosemary in for a subtle piney aroma. For a Mediterranean touch, stir in 1 teaspoon dried oregano when sautéing the vegetables.

Umami Richness

Boost the savory depth by adding 1 tablespoon soy sauce or 1 teaspoon miso paste during the final 5 minutes of simmering. For a deeper umami punch, stir in 1 tablespoon nutritional yeast when thickening the soup—it adds a cheesy, nutty flavor without dairy.

If you have dried shiitake mushrooms, add 1 teaspoon to the sautéed aromatics for an earthy, meaty note.

Spiced Sweetness

Add a touch of sweetness by stirring in 1 teaspoon honey or maple syrup during the final 10 minutes of simmering. For a spiced sweet variation, add ½ teaspoon cinnamon and ¼ teaspoon ground allspice when sautéing the aromatics.

This works surprisingly well with the smoky paprika, creating a warm, cozy flavor profile perfect for fall or winter.

Creamy Texture

For a naturally creamy soup without dairy, mash ½ cup of the cooked beans directly into the pot during the final 5 minutes of simmering. Alternatively, stir in ¼ cup coconut milk at the end for a velvety finish.

If you prefer a richer texture, blend 1 cup of the soup until smooth, then stir it back in—this creates a silky, restaurant-quality consistency. 💛

Nutrition facts

Servings 6
Amount Per Serving
Calories 240kcal
% Daily Value *
Total Fat 9g12%
Saturated Fat 1.5g8%
Cholesterol 0mg0%
Sodium 350mg15%
Total Carbohydrate 38g13%
Dietary Fiber 10g36%
Sugars 8g
Protein 12g24%
* Percent Daily Values are based on a 2,000 calorie diet. Your daily values may be higher or lower depending on your calorie needs.

Frequently asked questions

1

Can I use canned beans instead of dried for this recipe?

Yes! For a quicker version, substitute 2 (15 oz) cans white beans (like cannellini or great northern) for the dried beans. Drain and rinse them well to remove excess sodium. Just reduce the simmering time to 30-45 minutes since canned beans are already pre-cooked. The texture will be slightly softer but still delicious.

2

How can I make this soup gluten-free?

This recipe is already gluten-free! Skip the flour thickening or use a gluten-free flour blend (like rice or almond flour). For extra creaminess, mash ½ cup beans directly into the soup instead of using flour. The gluten-free flour blend mentioned in the ingredients works perfectly for thickening while keeping it safe for gluten-sensitive diets.

3

Why does my bean soup taste bland after simmering?

Bland soup usually means insufficient seasoning or underdeveloped flavors. Boost depth by adding 1 extra bay leaf or ½ tsp smoked paprika during simmering. For brightness, stir in 1 tbsp lemon juice at the end. If using low-sodium broth, add ½ tsp salt and let it simmer longer to concentrate flavors. Never add salt at the very end—it needs time to dissolve.

4

Can I make this soup in an Instant Pot?

Use the same ingredients but adjust cooking times. Sauté the aromatics as directed, then add all remaining ingredients and cook on high pressure for 15 minutes (for dried beans) or 8 minutes (for canned beans). Quick-release pressure, then finish with parsley and lemon juice. The Instant Pot version cooks 60% faster but yields equally rich results.

5

What's the best way to store and reheat leftovers?

Store in an airtight container in the fridge for up to 5 days or freeze for 3 months. To reheat, warm on the stove over medium-low heat with 2 tbsp water per serving, stirring frequently. For microwave reheating, cover and heat for 2-3 minutes, then stir and add more liquid if needed. The flavors actually improve overnight!

★★★★★4.6(3 reviews)
Categories Soups & Stews