Soups & Stews
This bean soup recipe from scratch transforms humble ingredients into a deeply satisfying, restaurant-worthy bowl of warmth. The secret lies in slow-simmered broths, caramelized aromatics, and the perfect balance of beans—creamy navy, hearty pinto, and tender kidney—that melt into a velvety, flavor-packed base.
I developed this version after years of testing, ensuring every spoonful delivers that comforting, homey richness without shortcuts that compromise texture.
What sets this recipe apart is the pressure cooker method, which reduces cooking time to under an hour while preserving all the natural goodness of the beans and vegetables.
You’ll start with dried beans (no soaking required—just a quick rinse), then build layers of flavor through sautéing onions, garlic, and celery until they’re golden and fragrant. The broth simmers until it’s thick enough to coat a spoon, creating that signature hearty consistency that makes this soup so irresistible.
By the time you’re done, you’ll have a deeply aromatic, richly textured bean soup with a balance of earthy, smoky, and slightly sweet notes.
The beans soften just enough to blend into the broth while maintaining their shape, and the herbs—thyme, bay leaf, and parsley—add bright, fresh accents that cut through the richness.
This isn’t just soup; it’s a one-pot meal that feeds a crowd, warms a cold day, and tastes even better the next.
Serve it with crusty bread to soak up every last drop or pair it with a simple green salad for balance. The beauty of this recipe is its versatility—it’s hearty enough for a winter dinner but light enough for a cozy lunch.
Let’s get cooking; your taste buds will thank you.
Ingredients for bean soup from scratch
Dried beans, fresh herbs, and caramelized veggies—simple ingredients for an unforgettable, restaurant-style bean soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Navy Beans (dried) 🌱 | 1 cup | Rinsed before cooking |
| Pinto Beans (dried) 🌱 | 1 cup | Rinsed before cooking |
| Kidney Beans (dried) 🌱 | 1 cup | Rinsed before cooking |
| Yellow Onions 🧅 | 2 whole | Diced, medium size |
| Carrots 🥕 | 3 medium | Chopped into chunks |
| Celery Stalks 🧄 | 3 whole | Chopped, medium size |
| Garlic Cloves 🧄 | 4 cloves | Minced, fresh preferred |
| Vegetable Broth 💧 | 6 cups | Low-sodium preferred |
| Tomato Paste 🍅 | ½ cup | No-salt-added preferred |
| Fresh Thyme 🌿 | 1 tbsp | Leaves only, chopped |
| Bay Leaves 🌿 | 2 whole | Dried or fresh |
| Fresh Parsley 🌿 | ¼ cup | Chopped, for garnish |
| Olive Oil 🫒 | ¼ cup | Extra-virgin preferred |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
| Black Pepper 🌶️ | ½ tsp | Freshly ground preferred |
The beans are the heart of this soup, so pick a mix of navy, pinto, and kidney—they blend perfectly in texture and flavor. I always grab dried beans from Whole Foods or the bulk section at Trader Joe's; they stay fresher longer. No soaking needed—just rinse them well before adding to the pot. The carrots and celery should be chopped into even pieces so they cook through evenly. If you're short on time, baby carrots work great (no chopping required).
No fresh thyme? Dried works at one-third the amount. The tomato paste can be swapped for 1 can crushed tomatoes if you prefer. For extra depth, add a splash of balsamic vinegar at the end. The broth matters—low-sodium vegetable broth keeps the flavors balanced. If you're using canned beans, drain and rinse them thoroughly to cut down on sodium. The pressure cooker method cuts time in half, but a regular pot works too—just add an extra 30 minutes to simmer.
This soup tastes even better the next day—honestly, the flavors meld into something magical. Keeps for 5 days in the fridge, freezes beautifully for 3 months. I always make a big batch and freeze half for lazy weeknights. Store it in airtight containers, and don’t forget to label with the date. The parsley can be added fresh at the end, or you can stir in dried parsley if you’re prepping ahead.
Why You'll Love This Recipe
- No-Soak Required: I’ll be real—soaking beans is a hassle. This recipe skips it entirely, using dried navy, pinto, and kidney beans that soften beautifully overnight in the slow cooker. Just dump, add water, and let it work its magic while you sleep.
- Three-Bean Powerhouse: That mix of navy, pinto, and kidney beans? It’s a flavor and texture trifecta—creamy navies, speckled pintos, and hearty kidneys. Honestly, the combo is so good, I’ll eat it straight from the pot (no shame).
- Weeknight to Potluck: Make a big batch on Sunday, and you’ve got lunch for the week, a cozy dinner, or a crowd-pleasing potluck dish. The onions and carrots caramelize just enough to add depth, but it’s still unfussy enough for a Tuesday night.
- Pantry Magic: Dried beans and basic veggies? This soup is my budget-friendly secret weapon. A single batch costs pennies, stretches for days, and tastes like you slaved over it—even though you just stirred and waited.
Step-by-step instructions for hearty homemade bean soup
Here's how to build a rich, flavorful bean soup from scratch that tastes like it simmered all day.
Soak and Prepare the Beans
Place all 1 cup Navy Beans (dried), 1 cup Pinto Beans (dried), and 1 cup Kidney Beans (dried) in a large bowl and cover with plenty of cold water. Let them soak for at least 8 hours or overnight - this dramatically reduces cooking time and makes them easier to digest. I like to soak them in the fridge to prevent any fermentation.
After soaking, drain and rinse the beans thoroughly. This removes any impurities and gets rid of the soaking water that can make the soup taste flat. Give them a good shake in the colander to remove excess moisture before transferring to your soup pot. This step is crucial for developing that deep, concentrated flavor later on.
Build the Flavor Base
Heat ¼ cup Olive Oil in a large pot over medium heat. Add the 2 whole Yellow Onions (diced), 3 medium Carrots (chopped), and 3 whole Celery Stalks (chopped). Cook for 8-10 minutes until the vegetables soften and the onions become translucent. This is your aromatic base - don't rush it.
Add the 4 cloves Garlic Cloves (minced) and cook for another 30 seconds until fragrant. Stir in the ½ cup Tomato Paste and cook for 2 minutes, stirring constantly to prevent burning. This step develops the rich, caramelized flavors that form the foundation of your soup. The tomato paste will deepen the color and add natural sweetness that balances the earthiness of the beans.
Combine and Simmer the Soup
Add the drained beans, 6 cups Vegetable Broth, 1 tbsp Fresh Thyme (chopped), 2 whole Bay Leaves, 1.5 tsp Salt, and ½ tsp Black Pepper to the pot. Bring everything to a rolling boil, then immediately reduce heat to low. Cover and let it simmer gently for 1 hour 15 minutes, stirring occasionally.
After the initial hour, check the beans for tenderness. They should be soft but still hold their shape. If they're still firm, continue simmering for another 15-30 minutes. The key here is patience - the longer they cook, the more flavor they absorb. The soup should be thick and hearty, not watery. If it's too thick, add a little more broth.
Finish and Serve
Remove the Bay Leaves from the soup. Taste and adjust seasoning if needed - you might want to add more salt or pepper depending on your broth. Stir in the ¼ cup Fresh Parsley (chopped) just before serving to brighten the flavors and add freshness.
Ladle the soup into bowls and serve immediately. The parsley adds a beautiful green contrast to the rich, brown soup. For extra richness, you can top each serving with a drizzle of olive oil or some crusty bread. This soup tastes even better the next day as the flavors continue to meld, but it's so good fresh that you might not make it that long!
Pro Tips For Making Bean Soup From Scratch
- SOAK BEANS OVERNIGHT: I learned this the hard way—rushing soaking with hot water just makes them tough. Use cold water, cover by 2 inches, and let them sit 8–12 hours. The longer they soak, the more tender they’ll get, and you’ll skip the boiling-over drama when you start cooking.
- SWEAT ONIONS LOW AND SLOW: High heat turns onions into mush before they develop flavor. Keep it at medium-low, stirring often, until they’re deep golden—about 10 minutes. This builds the base for the whole soup, and skipping this step means bland, watery results.
- DON’T CROWD THE POT: I used to pack beans in like they were going on a diet, but they need room to breathe. Start with 3 cups liquid per cup of beans, and add more as they cook. Crowding leads to uneven cooking and a gummy texture—no one wants that.
- SALT THE WATER LATE: Adding salt early hardens the beans’ skins, making them tougher. Wait until they’ve simmered for 30 minutes, then salt the water like the sea. This keeps them tender and lets the flavors meld properly—trust me, it makes a real difference.
Essential equipment for perfect results
Pressure Cooker Essentials
For the fastest results, a 6-quart pressure cooker like the Instant Pot Duo is my go-to—it cuts cooking time to under 30 minutes while keeping flavors deep. The high-pressure environment softens beans perfectly without losing texture.
Just add all ingredients after the initial sauté, seal, and cook on high pressure for 15 minutes. The quick release method preserves bean integrity better than natural release. 💫
Slow Cooker Setup
A 6-quart slow cooker transforms this into a hands-off, overnight project. After sautéing your aromatics, transfer everything to the slow cooker and cook on low for 8 hours or high for 5 hours.
The long simmer develops richer flavors, especially if you add a splash of red wine (½ cup) during the last hour. I like the Hamilton Beach Programmable Slow Cooker for its even heat distribution.
Stovetop Pot Requirements
Use a large, heavy-bottomed pot (like All-Clad Stainless) to prevent scorching during the long simmer. A 6-8 quart capacity ensures enough room for beans to soften without crowding. If your pot isn’t deep enough, the broth may boil over.
I always keep a wooden spoon nearby to stir occasionally and prevent sticking. A fine-mesh strainer is handy for rinsing beans post-soak.
Knife & Cutting Tools
A sharp chef’s knife (like Wüsthof Ikon) and cutting board are non-negotiable for even chopping. Dice onions into ¼-inch pieces and carrots/celery into ½-inch chunks for consistent cooking.
A mandoline speeds up prep if you’re making this frequently. For garlic, a garlic press saves time over mincing by hand—just don’t skip the 30-second cook to avoid bitterness.
Broth & Seasoning Gear
Invest in low-sodium vegetable broth (I love Imagine or Pacific Foods) to control flavor balance. A small whisk helps blend tomato paste smoothly into the oil. For measuring, a spoon rest keeps herbs and spices organized.
A tasting spoon (like OXO Good Grips) lets you sample without burning your tongue. Don’t forget a fine-mesh sieve to strain parsley leaves for garnish.
Storage Containers
For leftovers, glass Pyrex containers with airtight lids preserve flavor best. Label with dates—this soup stays fresh for 5 days refrigerated or 3 months frozen. I use quart-sized containers for portion control.
For freezing, leave 1-inch headspace to prevent expansion cracks. A parchment-lined tray helps freeze portions individually before transferring to bags. 🧊
Nutrition facts
Frequently asked questions
Do I need to soak the beans overnight?
Not necessarily! While overnight soaking (8+ hours) reduces cooking time, you can use the quick-soak method: Cover dried beans with boiling water, let sit for 1 hour, then drain and rinse. For this recipe, even unsoaked beans work—just add an extra 30-45 minutes to simmering time. The key is rinsing thoroughly before cooking to remove impurities.
Can I substitute canned beans for dried?
Yes, but adjust the liquid! Use 2 (15-oz) cans of each bean type (navy, pinto, kidney) and add 1 extra cup of broth to compensate for the lost soaking water. Drain and rinse canned beans well to reduce sodium. For best texture, look for "no salt added" varieties. The flavor will be slightly less developed than dried beans, but still delicious.
Why does my bean soup taste bland?
Blandness usually comes from insufficient seasoning or short cooking time. First, ensure you're using low-sodium broth and adding salt gradually. Let the soup simmer uncovered for the last 10 minutes to concentrate flavors. For extra depth, stir in 1 tsp smoked paprika or a splash of red wine during the final hour. Fresh herbs (like parsley) added at the end also brighten the flavor.
How can I make this soup thicker?
For a richer, thicker texture, mash ¼ of the cooked beans with a potato masher while still in the pot. Alternatively, simmer uncovered for 10-15 extra minutes to reduce the broth. If it's too thin, stir in 1 tbsp tomato paste or 1 tsp cornstarch mixed with water. For a creamy version, blend ½ cup of the soup and stir it back in—just don't over-blend or it'll get gluey!
What are the best toppings for this bean soup?
Classic pairings include crusty bread, avocado slices, or a drizzle of olive oil. For extra protein, add crumbled feta cheese or sautéed chorizo. Fresh cilantro or green onions add brightness, while a sprinkle of crushed red pepper flakes gives heat. For a smoky touch, top with toasted pumpkin seeds or crumbled bacon (if making a non-vegetarian version).
