Bean Soup from Scratch Recipe: Hearty Homestyle Richness From Dried Beans

Soups & Stews

Bean Soup from Scratch Recipe: Hearty Homestyle Richness From Dried Beans

This bean soup from scratch recipe transforms simple dried beans into a rich, hearty meal that tastes like home. The secret lies in proper soaking and slow simmering, which develop deep flavor and tender textures without requiring fancy ingredients.

I've perfected this method over years of testing, ensuring every spoonful delivers that satisfying combination of creamy beans, aromatic vegetables, and savory broth.

What sets this recipe apart is the balance between tradition and convenience. While dried beans require overnight soaking, the resulting soup is far more flavorful than canned versions. We'll build layers of taste through sautéed onions, garlic, and herbs, then let everything meld during a long simmer.

The result is a soup that's substantial enough for a main dish but flexible enough to work as a side.

The finished soup features perfectly tender beans with a creamy texture, surrounded by a fragrant broth that's neither too thick nor too thin. Each bite delivers the earthy richness of beans balanced by bright vegetables and aromatic herbs.

This is the kind of soup that warms you from the inside out while keeping prep manageable.

Whether you're following a vegan diet or simply appreciate a comforting bowl of homemade goodness, this recipe delivers restaurant-quality results in your own kitchen. The method scales easily for feeding a crowd or making leftovers for the week. Let's get started on creating your perfect pot of bean soup.

👨‍🍳
Difficulty
Medium
🔥
Calories
Low Cal

Ingredients for bean soup from scratch

Simple dried beans and pantry staples create restaurant-quality bean soup from scratch.

Ingredient Amount Notes
Dried Navy Beans 🌾 2 cups Uncooked, soaked overnight
Yellow Onions 🧅 1 ½ cups Diced, medium size
Carrots 🥕 2 medium Peeled, chopped into chunks
Celery Stalks 🌿 3 whole Diced, including leaves
Garlic Cloves 🧄 6 cloves Minced, fresh preferred
Extra-Virgin Olive Oil 🫒 ¼ cup For sautéing vegetables
Vegetable Broth 💧 6 cups Low-sodium preferred
Tomato Paste 🍅 ½ cup No added salt
Fresh Thyme 🌿 ½ ounce Leaves only, chopped
Fresh Bay Leaves 🌿 2 whole Removed before serving
Sea Salt 🧂 1 ½ tsp Adjust to taste
Black Peppercorns 🌶️ 1 tsp Freshly ground
Lemon Juice 🍋 1 tbsp Freshly squeezed
Fresh Parsley 🌿 ¼ cup Chopped, for garnish

The beans are the heart of this soup, so don't skimp on quality. Bob's Red Mill or Great Northern beans from bulk bins work best—they hold their shape and soak evenly. If you're short on time, quick-soak method (boil for 2 minutes, then let sit covered for 1 hour) works too. The onions, carrots, and celery form the aromatic base—buy fresh (no limp celery or rubbery carrots). For the broth, Pacific Foods or Imagine brands deliver consistent flavor without excess sodium. Fresh thyme and bay leaves add depth that dried spices can't match, but if you're using dried, reduce to one-third the amount.

No fresh herbs? Dried thyme and parsley work in a pinch, though the flavor won't be as bright. Substituting canned beans? Drain and rinse thoroughly to remove excess sodium, then add them at the end of cooking. The tomato paste can be swapped for 1 cup crushed tomatoes, but paste gives a deeper, richer base. For a smokier flavor, add 1 tsp smoked paprika with the tomato paste. The lemon juice brightens the soup—don't skip it, even if you're not a fan of citrus in soups. Trust me, it balances the earthiness perfectly.

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 freezing, cool completely first to prevent ice crystals. Reheat gently on the stove with a splash of water or broth to restore creaminess. I always make a double batch—one for dinner, one for lunches. The beans thicken slightly when reheated, so add a little water if it's too thick after refrigeration.

❤️

Why You'll Love This Recipe

  • No-Soak Necessary: I’ll admit, I used to dread soaking beans—until I realized these navy beans soften beautifully overnight in cold water. No fancy tricks, just a jar and patience. The next day, they’re tender but still hold their shape, so every spoonful has that perfect texture.
  • Garlic-Carrot Crunch: That crisp-tender bite from the carrots and celery? It’s the secret weapon. I slice them into thick rounds instead of dicing—keeps them from turning mushy—and the garlic? I brown it first until it’s golden, which adds this deep, nutty richness that makes the whole soup sing.
  • Lunchbox Magic: Between us, this is my go-to for meal prep. I make a big batch on Sundays, and by Wednesday, I’m still pulling out jars of it for work lunches. The flavors only get better as it sits, and the beans keep everyone full for hours—no sad, wilted salads here.
  • Pantry Staple Power: Honestly, the ingredients cost me less than $5 for six servings. Navy beans are cheap, onions and carrots last forever, and I already had the celery from my smoothies. Plus, it reheats like a dream—no weird textures or soggy bits, just warm, hearty goodness that tastes like you put in effort.

Step-by-step instructions for hearty homestyle bean soup

Transform simple dried beans into rich, velvety soup with this method-tested approach.

1

👨‍🍳 Step 1: Prepare the Beans for Maximum Flavor

Place the 2 cups dried navy beans in a large bowl and cover with plenty of cold water by at least 2 inches. Soak overnight at room temperature or for at least 8 hours. The beans are ready when they're plump and easily crushed between fingers. Drain and rinse thoroughly before using.

I always soak beans overnight because this dramatically reduces cooking time and prevents that unpleasant, starchy texture. Never skip this step—it's the foundation for tender beans. After draining, give them a quick rinse under cold water to remove any surface starch that could make the soup cloudy.

2

🍳 Step 2: Sauté the Vegetable Base

Heat the 0.25 cup extra-virgin olive oil in a large Dutch oven over medium heat. Add the 1.5 cups diced yellow onions, 2 medium chopped carrots, and 3 whole diced celery stalks. Cook for 8-10 minutes until the vegetables soften and the onions become translucent.

This is where the flavor develops—don't rush it. You'll know it's ready when the vegetables release their aroma and the onions turn golden at the edges. Stir occasionally so nothing burns. The celery leaves add subtle bitterness that balances the sweetness of the carrots.

3

🍳 Step 3: Develop the Flavor Foundation

Add the 6 minced garlic cloves and cook for 30 seconds until fragrant. Stir in the 0.5 cup tomato paste and cook for 2 minutes until it darkens slightly. Pour in the 6 cups vegetable broth, scraping up any browned bits from the bottom of the pot.

This deglazing step captures all the flavor you've built so far. The tomato paste adds depth without overpowering the vegetable flavors. I like to use low-sodium broth here so I can control the final seasoning more precisely. Add the 0.5 ounce chopped fresh thyme leaves and 2 whole fresh bay leaves now—they'll infuse the broth beautifully.

4

⏰ Step 4: Simmer the Beans to Perfection

Add the soaked navy beans to the pot. Bring to a boil, then reduce heat to low and cover partially. Simmer for 1.5 to 2 hours until the beans are fork-tender. Check occasionally and add water if needed to maintain the liquid level.

The beans are done when they're soft but still hold their shape with just a slight resistance. You'll know they're ready when they're creamy inside but not mushy. This slow cooking process transforms the dried beans into tender, flavorful morsels that'll melt in your mouth.

5

🥘 Step 5: Finish and Season

Remove the 2 whole fresh bay leaves. Stir in the 1.5 teaspoons sea salt and 1 teaspoon freshly ground black peppercorns. Cook for 5 more minutes to let the seasoning meld with the soup. Remove from heat and stir in the 1 tablespoon freshly squeezed lemon juice and 0.25 cup chopped fresh parsley.

The lemon juice brightens all the rich flavors while the parsley adds freshness. Taste and adjust seasoning if needed—this is where you can really customize the soup to your preference. The parsley should be finely chopped so it distributes evenly throughout the soup.

👨‍🍳

Pro Tips For Making Bean Soup From Scratch

  • SOAK BEANS OVERNIGHT: I learned this the hard way—rushing soaks with hot water just makes beans tougher. Cold water for 8+ hours (or quick-soak: 2 hours in boiling water, then cool) breaks down those stubborn skins better. Drain and rinse twice before cooking to cut down on gassiness—trust me, your dinner guests will notice.
  • SWEAT VEGETABLES LOW: High heat caramelizes onions and celery too fast, turning them bitter. Use medium-low and let them cook for 10 minutes until soft and translucent—no browning yet. Add carrots later (they need more time) and stir occasionally so nothing sticks. This builds flavor without burning the aromatic base.
  • SKIP THE CROWDED POT: I used to dump everything in at once, and the soup would turn mushy. Cook beans in batches if your pot’s full—leave 2 inches of headspace. Once tender, fold them into the finished broth with veggies. Crowding traps steam, which makes beans mealy instead of creamy.
  • SALT THE WATER LATE: Adding salt early toughens beans by drawing out moisture before they’re fully hydrated. Wait until they’ve soaked and simmered for 30 minutes before salting. Then taste the broth—it should be seasoned like the ocean, not bland. Adjust as you go; beans absorb flavor like sponges.

Regional styles of this dish

Spanish-Style Garbanzo

In Spain, garbanzo beans replace navy beans, creating a rustic soup called garbanzos con espinacas. Use 2 cups dried garbanzo beans soaked overnight, then simmer with 2 cups spinach added in the last 10 minutes.

Finish with 1 tsp smoked paprika and a splash of sherry vinegar for depth. This version often includes 1 diced potato for heartiness. 🌍

Italian White Bean

For an Italian twist, swap navy beans for 2 cups dried cannellini beans and add 1 diced fennel bulb with the onions. Use 1 cup crushed tomatoes instead of tomato paste, and finish with 1 tbsp fresh rosemary instead of thyme.

This fagioli bianchi version pairs beautifully with crusty bread. The fennel adds an anise-like sweetness that complements the beans perfectly.

French Haricot

French haricots blancs often include 1 diced leek (white parts only) and 1 diced carrot. Add 1 sprig fresh tarragon with the bay leaves for a distinct herbal note. After simmering, stir in 2 tbsp crème fraîche.

This version is traditionally served with buttered croutons and a drizzle of truffle oil for a luxurious touch. The tarragon gives it a bright, slightly peppery flavor that stands out.

Mexican Frijoles

Transform this into frijoles de la olla by adding 1 diced bell pepper, 1 minced jalapeño, and 1 tsp ground cumin with the tomato paste. Use 1 cup corn kernels (fresh or frozen) in the last 15 minutes of cooking.

Top with avocado slices and cilantro before serving. The cumin and jalapeño add warmth, while the corn gives it a sweet, textural contrast. 🌶️

Portuguese Feijão-Troço

In Portugal, this soup becomes feijão-troço with 1 cup diced chorizo added during the final 30 minutes of cooking. Use 1 cup white wine instead of broth for part of the liquid, and finish with 1 tbsp fresh parsley.

Serve with crusty bread to soak up the rich, smoky broth. The chorizo adds a deep, savory dimension that balances the beans beautifully.

American South "Cowboy Beans"

For a Southern U.S. take, add 1 cup diced smoked sausage (like andouille) and 1 cup diced sweet potatoes with the carrots. Use 1 tsp cayenne pepper and 1 bay leaf for a spicier profile.

This version is often served with cornbread and a dollop of sour cream. The sweet potatoes add natural sweetness that contrasts with the smoky sausage, creating a balanced, hearty bowl. 🔥

Nutrition facts

Servings 6
Amount Per Serving
Calories 280kcal
% Daily Value *
Total Fat 8g10%
Saturated Fat 1g5%
Cholesterol 0mg0%
Sodium 550mg24%
Total Carbohydrate 45g16%
Dietary Fiber 12g43%
Sugars 6g
Protein 18g36%
* 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?

Yes, but with adjustments! Drain and rinse 3 cups canned beans (about 15 oz per can) thoroughly to remove excess sodium. Add them during the last 15 minutes of simmering to prevent overcooking. The texture will be slightly softer than dried beans, but still delicious. For best flavor, use low-sodium or no-salt-added cans.

2

How do I make this soup creamier?

For extra creaminess, mash 1/2 cup of the cooked beans with a fork before adding them back to the pot. Alternatively, stir in 1/2 cup unsweetened coconut milk or 2 tbsp olive oil at the end. The beans naturally thicken as they cool, so you may need to add a splash of broth if it becomes too thick after refrigeration.

Can I make this in a slow cooker? Sauté the onions, carrots, and celery in a skillet first, then transfer everything to your slow cooker. Add the soaked beans, broth, tomato paste, and herbs. Cook on low for 6-7 hours or high for 3-4 hours until beans are tender. The slow cooker's gentle heat enhances the flavors beautifully. Just

3

What if my beans are still hard after cooking?

Hard beans usually mean they weren't soaked long enough or cooked at too high heat. For immediate results, add 1 cup hot water and simmer uncovered for 30 more minutes. For prevention, always soak beans overnight (or use the quick-soak method) and maintain a gentle simmer—not a rolling boil—while cooking. If they're still tough, they may need 1 more hour of cooking time.

How can I make this soup spicier?

Add 1/2 tsp cayenne pepper or 1 tsp chili flakes with the tomato paste. For heat with depth, stir in 1 minced chipotle pepper in adobo sauce or 1 tsp smoked paprika. Finish with fresh toppings like diced jalapeños or a dash of hot sauce.

★★★★★4.9(11 reviews)
Categories Soups & Stews