Soups & Stews
A hearty bean soup with potatoes, onions, and garlic transforms simple pantry staples into a savory, comforting meal that’s ready in one pot. This recipe delivers restaurant-quality depth with minimal effort—just sauté, simmer, and serve.
The key lies in building flavor through slow cooking, where onions caramelize and garlic infuses every spoonful.
What makes this dish special is its foolproof technique: no fancy ingredients, no complicated steps. You’ll start by sautéing onions and garlic until fragrant, then add beans, potatoes, and broth to create a rich, aromatic base.
The longer it simmers, the more complex the flavors become—earthy beans, creamy potatoes, and sweet onions meld into a satisfying bowl.
By the time you’re done, you’ll have a hearty, nourishing soup that’s perfect for chilly evenings or meal prep. The texture is just right—tender potatoes, creamy beans, and a broth so flavorful it disappears into every bite. Serve it as-is or top with fresh herbs for brightness.
This one-pot wonder is beginner-friendly yet impressive, making it ideal for weeknight dinners or potlucks. The simplicity doesn’t compromise on taste—just pure, comforting goodness in every spoonful. Let’s get cooking!
Ingredients for bean soup with potatoes and onion and garlic
Pantry staples and fresh aromatics create a restaurant-worthy bean soup with potatoes and onions.
| Ingredient | Amount | Notes |
|---|---|---|
| Dried Cannellini Beans 🌾 | 1 ½ cups | Rinsed before cooking |
| Yukon Gold Potatoes 🥔 | 2 lbs | Cut into 1-inch cubes |
| Yellow Onions 🧅 | 2 whole | Thinly sliced for caramelization |
| Garlic Cloves 🧄 | 6 cloves | Minced for aromatic depth |
| Vegetable Broth 💧 | 4 cups | Low-sodium preferred |
| Extra-Virgin Olive Oil 🫒 | ¼ cup | For sautéing onions |
| Smoked Paprika 🌶️ | 1 tbsp | For smoky depth |
| Ground Cumin 🌿 | 1 tsp | Toasted for warmth |
| Kosher Salt 🧂 | 1 ½ tsp | Diamond Crystal preferred |
| Black Peppercorns 🌶️ | ½ tsp | Freshly cracked |
| Fresh Thyme Leaves 🌿 | ¼ cup | Or 1 tsp dried thyme |
| Lemon Juice 🍋 | 1 tbsp | Freshly squeezed |
| Nutritional Yeast 🧀 | 2 tbsp | For umami richness |
| Fresh Parsley 🌿 | ⅛ cup | Chopped for garnish |
The foundation of this dish lies in the cannellini beans and Yukon Gold potatoes—both contribute to its velvety texture. Dried beans (not canned) develop deeper flavor when simmered from scratch, soaking overnight is ideal. For convenience, use pre-soaked beans from the bulk section at Whole Foods or Trader Joe's. The potatoes should be firm and unblemished—avoid waxy varieties like red potatoes, as they hold their shape too well and won’t break down into creamy chunks. Smoked paprika and ground cumin are non-negotiable for that earthy, smoky depth that elevates the dish beyond basic bean soup.
No fresh thyme? Dried thyme at one-third the amount works, but the aroma is unmatched when fresh. Substitute bay leaves for a different herbal note, but remove them before serving. Short on vegetable broth? Mushroom broth or even water with a bouillon cube will suffice, though the flavor won’t be as complex. The nutritional yeast adds a cheesy umami that’s especially important for vegan diets—Bob’s Red Mill is a reliable brand. For extra richness, stir in 1 tbsp of vegan butter at the end, though it’s optional. The lemon juice brightens the dish at the finish, so don’t skip it—even a splash makes a difference.
This soup tastes even better the next day as flavors meld. Store in an airtight container for up to 5 days in the fridge or freeze for 3 months in portioned containers. To reheat, add a splash of water or broth and simmer gently to avoid breaking down the potatoes further. Double the recipe for meal prep—it reheats beautifully and keeps well. For extra heartiness, serve with crusty bread or a sprinkle of toasted breadcrumbs on top. The parsley garnish adds freshness, but it’s purely decorative—skip if you’re short on time.
Why You'll Love This Recipe
- No-Fuss Pantry Staples: I swear by this recipe because it uses ingredients I already have—no last-minute grocery runs. Cannellini beans and Yukon Golds sit in my cupboard waiting for this exact moment, and the onions/garlic? Always in the fridge. Honestly, I’ve made this after forgetting to meal prep.
- Caramelized Onion Magic: That slow-cooked onion base? It’s where the flavor lives. The deeper they brown, the richer the soup—like a sweet, savory hug in every spoonful. I’ll be real: I’ve been known to make extra just to eat with toast.
- Weeknight to Potluck: This soup works everywhere. Too tired for dinner? Throw it together in 30 minutes. Bringing something to a gathering? It reheats beautifully and disappears fast. My college roommate still asks for the recipe—10 years later.
- Leftovers That Don’t Suck: Most soups turn sad when reheated, but not this one. The potatoes stay tender, the beans hold their shape, and the broth stays bright. I’ve eaten this cold the next day (yes, really) and it’s still the star of my lunch. Budget-friendly? Absolutely. But more importantly—reliable.
Step-by-step instructions for hearty bean soup with potatoes, onions, and garlic
This one-pot wonder delivers deep, savory flavors with minimal effort—just follow these precise steps.
Sauté Aromatics Until Deeply Caramelized
Heat the 0.25 cup extra-virgin olive oil in a large Dutch oven over medium heat. Add the 2 whole yellow onions, sliced thinly, and cook for 10-12 minutes until they develop a rich golden hue and sweet aroma. Stir occasionally to prevent burning.
Here's the thing—patience at this stage transforms ordinary onions into flavor bombs. You'll know they're ready when they're soft enough to pierce with a fork but still hold their shape. Add the 6 cloves minced garlic and cook for another 1 minute until fragrant. The garlic should sizzle gently without browning.
Toast Spices and Build the Flavor Base
Reduce the heat to medium-low and stir in the 1 tbsp smoked paprika and 1 tsp ground cumin. Toast for 30 seconds until the spices release their aromatic oils and the mixture smells earthy and warm. This step is where the smoky depth comes from—don't skip it.
Add the 1.5 cups dried cannellini beans (rinsed) and stir to coat them in the spiced oil. Cook for 2 minutes to lightly toast the beans, which enhances their nutty flavor. Then pour in the 4 cups vegetable broth and bring to a gentle boil. Real talk: if you see any foam rising, skim it off—it can make the soup cloudy.
Simmer Potatoes Until Fork-Tender
Add the 2 lbs Yukon Gold potatoes, cut into 1-inch cubes, and the 1.5 tsp kosher salt. Stir gently to distribute everything evenly. Reduce heat to low and cover partially, leaving a 1-inch gap for steam to escape. Simmer for 20-25 minutes until the potatoes are tender when pierced with a fork.
I press down gently on the potatoes with a wooden spoon during the first 10 minutes—this prevents them from floating and ensures even cooking. If the soup looks too thick after 15 minutes, add ½ cup water to maintain the right consistency. The beans should be nearly tender but still hold their shape at this point.
Finish with Umami and Fresh Herbs
Once the potatoes are tender, stir in the 0.25 cup fresh thyme leaves, 2 tbsp nutritional yeast, and 0.5 tsp cracked black peppercorns. Simmer uncovered for another 5 minutes to let the flavors meld. The nutritional yeast adds a cheesy, umami richness that elevates the whole dish—don't skip this step.
Finish with the 1 tbsp lemon juice and taste. Adjust seasoning if needed—this soup should be deeply savory with a bright acidity. Remove from heat and let it sit for 5 minutes to thicken slightly. The resting period allows the flavors to settle and makes the texture even creamier.
Garnish and Serve Warm
Ladle the soup into bowls and garnish each serving with 0.125 cup chopped fresh parsley. The parsley adds a fresh contrast to the rich, earthy flavors. Serve immediately with crusty bread to soak up every last drop of that savory broth.
This one-pot method ensures maximum flavor with minimal cleanup. The potatoes will be creamy, the beans tender yet firm, and the onions and garlic will provide a sweet, aromatic base. Each spoonful delivers a perfect balance of smoky, earthy, and bright flavors—exactly what makes this soup so satisfying.
Pro Tips For Making Bean Soup With Potatoes And Onion And Garlic
- SOAK BEANS OVERNIGHT: Dried cannellini beans need a good long soak—at least 8 hours, ideally overnight—to soften properly. I learned this the hard way: rushing them in boiling water leaves them mealy instead of creamy. Use a big bowl, cover with plenty of water, and add a pinch of baking soda to help break down those tough skins.
- COOK POTATOES FIRST: Cut Yukon Golds into even 1-inch chunks and boil them in salted water for 8-10 minutes until just tender. Drain and set aside—this prevents them from turning to mush later in the soup. (Yes, even if you’re impatient like me, don’t skip this step.)
- CARMELIZE ONIONS LOW: Onions should sweat for 20 minutes at medium-low heat until deep golden, not browned. I used to rush this and ended up with bitter, burnt bits—now I add a splash of water occasionally to keep things moving. Garlic goes in the last 2 minutes, just until fragrant.
- SIMMER GENTLY AFTER MERGING: After combining everything, keep the heat at a bare simmer (tiny bubbles, not rolling). I used to crank it up, and the potatoes would disintegrate while the beans stayed tough. A 30-minute simmer at low heat is all you need—let the residual heat finish the job.
Perfect pairings for this recipe
Crusty Bread Pairing
Nothing enhances this soup like a warm, crusty loaf of bread to soak up every last drop of that savory broth. I reach for a sourdough baguette from my local bakery—its chewy interior and crispy crust are perfect for dipping.
For a quicker option, toast slices of Ezekiel bread (it’s naturally gluten-free if needed) until golden and buttery. The bread’s texture contrasts beautifully with the creamy potatoes and tender beans, making each bite even more satisfying. 🥖
Bright Green Salad
A simple arugula salad with a zesty lemon vinaigrette cuts through the richness of the soup while adding freshness. Toss 4 cups baby arugula with 2 tbsp extra-virgin olive oil, 1 tbsp fresh lemon juice, and a pinch of flaky sea salt.
Add ¼ cup toasted pine nuts for crunch if you’re feeling fancy. The peppery bite of arugula balances the soup’s earthy flavors, creating a harmonious plate. ✨
Crispy Roasted Vegetables
For a heartier pairing, roast 1 lb Brussels sprouts or cauliflower florets with 1 tbsp olive oil, ½ tsp smoked paprika, and ½ tsp garlic powder at 425°F for 20-25 minutes until caramelized.
The crispy edges and smoky flavor complement the soup’s depth, adding texture and visual appeal. Serve alongside the soup for a well-rounded meal that’s both comforting and vibrant. 🌱
Warm Flatbreads
If you love dipping, try serving the soup with warm naan or pita bread. Brush the bread with garlic-infused olive oil and toast in a skillet over medium heat for 1-2 minutes per side until puffed and golden.
The soft, pillowy texture contrasts perfectly with the soup’s hearty ingredients, making every bite a delight. Store-bought or homemade, this adds a fun interactive element to the meal. 🔥
Spicy Pickled Onions
Add a tangy kick by serving the soup with quick-pickled red onions. Thinly slice 1 small red onion and soak in ½ cup apple cider vinegar, 1 tsp sugar, and ½ tsp red pepper flakes for at least 15 minutes.
The bright acidity and subtle heat cut through the soup’s richness, adding a refreshing contrast. This is a game-changer for those who love bold flavors. 🌶️
Creamy Avocado Slices
For a touch of luxury, serve the soup with sliced avocado drizzled with lime juice and a sprinkle of sea salt. The creamy, buttery texture of the avocado pairs beautifully with the soup’s smoky and earthy notes, adding a fresh, velvety element.
This pairing is especially refreshing in warmer months when you want something light yet satisfying. 🥑
Nutrition facts
Frequently asked questions
Can I use canned beans instead of dried?
Yes, but adjust the cooking time! Use 2 (15 oz) cans of drained cannellini beans and add them in Step 3 with the potatoes. Since canned beans are pre-cooked, simmer the soup for just 10-12 minutes after adding them to avoid breaking down the potatoes. The texture will be slightly softer but still delicious.
How do I make this soup extra creamy without dairy?
Blend ½ cup of the soup with ¼ cup silken tofu or coconut milk until smooth, then stir it back in. For a thicker texture, mash some of the cooked potatoes directly in the pot. The nutritional yeast already adds richness, so you won’t need much extra—just 1 tbsp vegan butter at the end works wonders too!
What if my soup is too thick after cooking?
Add ½ to 1 cup of water or broth and simmer for 5-10 minutes to reach your preferred consistency. If it’s still too thick, blend ¼ cup of the soup and stir it back in—this creates a silky texture without thinning it too much. The potatoes should be tender but still hold their shape, so avoid over-simmering.
Can I make this soup in an Instant Pot?
Sauté the onions and garlic as directed, then add all ingredients except the thyme and lemon juice. Seal the lid and cook on high pressure for 8 minutes. Quick-release the pressure, stir in the thyme and lemon juice, and let it sit for 5 minutes before serving. The potatoes will be extra tender, so adjust seasoning to taste.
Why does my soup taste bland?
Most likely, the spices weren’t toasted enough or the broth was weak. Next time, toast the spices for 1 full minute until fragrant, and use a rich vegetable or mushroom broth. A splash of soy sauce or miso paste (1 tsp) at the end adds umami depth. Fresh herbs like thyme and parsley make a huge difference—don’t skip them!
