Bean Soup with Potatoes, Onions, and Garlic Recipe: Savory Simmer With Crispy Potato Tops

Soups & Stews

Bean Soup with Potatoes, Onions, and Garlic Recipe: Savory Simmer With Crispy Potato Tops

This bean soup with potatoes, onions, and garlic delivers hearty comfort in every spoonful—especially when the potato tops get crispy from simmering.

The secret lies in building layers of flavor through slow cooking, where onions and garlic caramelize into the broth while potatoes soften just enough to absorb all that savory goodness.

I developed this recipe after years of testing variations, and the balance of textures—creamy beans, tender potatoes, and that golden crust on top—makes it impossible to resist.

The beauty of this soup is its simplicity: just a handful of ingredients that work together to create something deeply satisfying. You'll start by sautéing onions and garlic until fragrant, then add beans and potatoes to simmer until everything is tender and the flavors meld perfectly.

The key is letting it cook low and slow, which transforms simple ingredients into something restaurant-worthy. No fancy techniques required—just patience and attention to seasoning.

What you'll end up with is a bowl of soup that's rich, flavorful, and packed with satisfying textures—creamy beans, tender potatoes, and that irresistible crispy top layer. The aroma alone will have everyone gathering around the table, and the first bite delivers on that promise of hearty, comforting goodness.

This is the kind of soup that tastes even better the next day, making it perfect for meal prep or feeding a crowd.

Serve it as-is for a rustic feel, or garnish with fresh herbs for a pop of color and brightness. The crispy potato tops are the real star, so don't skip letting it simmer uncovered for the final few minutes.

Ready in about 1 hour, this soup is the ultimate weeknight dinner that feels like a hug in a bowl.

👨‍🍳
Difficulty
Medium
🌿
Category
Vegetarian
🔥
Calories
Med Cal

Ingredients for bean soup with potatoes and onion and garlic

Simple pantry staples transform into a restaurant-worthy bean soup with crispy potato tops.

Ingredient Amount Notes
Canned White Beans 🌾 2 cups Drained and rinsed thoroughly
Russet Potatoes 🥔 2 lbs Cut into 1-inch cubes, peeled
Yellow Onions 🧅 2 whole Medium, thinly sliced
Garlic Cloves 🧄 6 cloves Minced for deep flavor
Vegetable Broth 💧 4 cups Low-sodium preferred
Extra-Virgin Olive Oil 🫒 2 tbsp For sautéing aromatics
Smoked Paprika 🌶️ 1 tsp For subtle smokiness
Ground Cumin 🌿 1 tsp Toasted for depth
Salt 🧂 1 ½ tsp Adjust to taste
Black Pepper 🌶️ ½ tsp Freshly ground preferred
Fresh Thyme Leaves 🌿 ¼ cup Or 1 tsp dried thyme
Lemon Juice 🍋 1 tbsp Brightens the broth
Fresh Parsley 🌿 0.1 cup Chopped for garnish

The potatoes are the star here—Russet potatoes hold their shape best during simmering and develop that coveted crispy crust on top. Buy them fresh from the grocery store's produce section, not pre-cut bags, for the best texture. The white beans should be canned, not dried—Great Northern or cannellini work perfectly, but any white bean will do. For the onion, yellow onions caramelize more beautifully than red or white, giving that deep, sweet flavor. Garlic? Freshly minced is non-negotiable—pre-minced garlic loses its punch fast. If you're short on time, Trader Joe's sells pre-minced garlic that's surprisingly good.

No smoked paprika? Regular paprika plus a pinch of cayenne mimics that smoky depth. Short on thyme? Dried oregano at half the amount works in a pinch, but fresh thyme is ideal. The vegetable broth is where flavor builds—low-sodium is key so you can control the salt. If you're using a bouillon cube, Knorr Vegetable is a solid choice. For extra richness, add 1 tbsp nutritional yeast to the broth. The lemon juice is essential—it cuts through the heaviness of the beans and potatoes, brightening every spoonful. If you're vegan, double-check your broth label—some brands sneak in chicken flavorings.

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 in portions. For crispy potato tops, simmer uncovered for the final 10 minutes—that's when magic happens. Garnish with fresh parsley right before serving, as it wilts quickly. If you're prepping ahead, hold off on adding the lemon juice until reheating—it keeps the soup vibrant longer. Double the recipe? It freezes beautifully for quick weeknight meals.

❤️

Why You'll Love This Recipe

  • Pantry Powerhouse: I swear by this recipe when my fridge is bare—just open a can of beans, chop one onion, and you’ve got dinner. The broth and garlic do all the heavy lifting while I’m still deciding what to wear.
  • Caramelized Crunch Magic: That moment when the onions turn golden and the potatoes get tender? The garlic-toasty aroma hits you like a warm hug. Honestly, I’ll skip a salad just for this flavor combo.
  • Lunchbox Reinvented: Make a big batch on Sunday, and you’ve got lunch for the week. Cold or reheated, it’s still hearty—my kids actually eat the leftovers, and that’s saying something.
  • Budget-Busting Comfort: White beans and potatoes stretch this soup into three meals for under $10. Between us, it’s the only recipe I make when I’m trying to save money without feeling deprived.

Step-by-step instructions for bean soup with potatoes, onions, and garlic

Here's the method to create a hearty soup with perfectly crispy potato tops and rich, aromatic flavors.

1

Sauté Aromatics for Deep Flavor Foundation

Heat the 2 tablespoons extra-virgin olive oil in a large pot over medium heat. Add the 2 whole yellow onions and cook for 5-6 minutes until softened and translucent. You'll notice the onions release moisture and begin to caramelize slightly at the edges.

Add the 6 cloves minced garlic and cook for 30 seconds until fragrant—don't let it brown or it'll turn bitter. Stir in the 1 teaspoon smoked paprika and 1 teaspoon ground cumin, toasting for 1 minute until the spices release their aromas. This step builds the flavor base that will infuse the entire soup.

2

Build the Soup with Potatoes and Beans

Add the 2 pounds russet potatoes (cut into 1-inch cubes) to the pot and stir to coat with the spiced oil. Pour in the 4 cups vegetable broth and bring to a gentle boil. Once boiling, reduce heat to medium-low and simmer for 15 minutes until the potatoes begin to soften but aren't fully cooked.

Add the 2 cups drained and rinsed canned white beans and the 1.5 teaspoons salt. Stir gently to combine, then add the 0.25 cup fresh thyme leaves and 0.5 teaspoon black pepper. The beans will begin to absorb the flavors while the potatoes continue cooking. Keep the heat low enough to maintain a gentle simmer—this prevents the potatoes from breaking apart.

3

Finish with Brightness and Crispy Topping

Simmer the soup uncovered for 20-25 minutes until the potatoes are fork-tender with a slight bite remaining. Stir in the 1 tablespoon lemon juice and taste to adjust seasoning. The acidity brightens the flavors while balancing the earthy spices.

For the crispy potato topping, carefully remove about 1 cup potato cubes from the soup and spread them on a parchment-lined baking sheet. Broil for 3-4 minutes until golden brown and crispy. Watch closely—they burn quickly. Return the crispy potatoes to the soup just before serving.

4

Garnish and Serve Immediately

Ladle the soup into bowls, dividing the crispy potato topping evenly among servings. Garnish each portion with 0.1 cup chopped fresh parsley. The contrast of creamy soup, tender potatoes, and crispy topping creates the perfect textural experience.

Serve immediately while the potatoes are still crispy and the broth is steaming hot. The crispy topping adds a satisfying crunch that contrasts beautifully with the creamy bean-potato mixture. This technique transforms a simple soup into a restaurant-worthy dish.

👨‍🍳

Pro Tips For Making Bean Soup With Potatoes And Onion And Garlic

  • Sear the Potatoes First: I learned this the hard way—skipping the sear makes the potatoes turn to mush while the beans stay bland. Cut the russets into even 1-inch chunks, hit a hot pan with a little oil, and let them brown for 3-4 minutes per side before adding anything else. The crust locks in flavor and keeps them from falling apart later.
  • Rinse the Beans Twice: Canned beans are drowning in sodium, and this soup will taste like a salt lick if you don’t. Drain them, then rinse under cold water twice—once to remove the loose brine, and again to chase away the clingy residue. Trust me, your taste buds will notice the difference.
  • Simmer, Don’t Boil: After everything’s in the pot, keep the heat at a gentle simmer—not a rolling boil. I used to crank it up, and the potatoes would fall apart while the broth turned cloudy. A low simmer (barely any bubbles breaking the surface) keeps the potatoes intact and the broth clear.
  • Sauté Onions Low and Slow: Onions caramelize best when they sweat, not burn. Slice them into thin half-moons, cook them over medium-low heat for 8-10 minutes until soft and golden, then add the garlic. Rushing this step makes the soup taste raw and bitter—patience here makes all the difference.

Best sauces and condiments for this bean soup with potatoes and onion and garlic

Classic Tomato Sauce

Simmer 1 cup crushed San Marzano tomatoes with 1 tbsp olive oil, ½ tsp smoked paprika, and ½ tsp garlic powder for 15 minutes on low heat.

The acidity brightens the earthy bean flavors while adding a velvety texture. Stir in 1 tsp maple syrup at the end to balance any sharpness. 🍅

Creamy Garlic-Yogurt Drizzle

Whisk ½ cup plain coconut yogurt with 1 minced garlic clove, 1 tbsp lemon juice, and ½ tsp salt until smooth. Drizzle over individual servings just before eating for a cool, tangy contrast to the warm soup.

For extra richness, add 1 tsp olive oil to the mix. This works especially well with the crispy potato topping.

Spicy Chili Oil

Heat ¼ cup olive oil with 1 tbsp red pepper flakes and 1 tsp cumin seeds in a small pan over low heat for 3-4 minutes until fragrant. Strain out the solids and drizzle 1 tsp per bowl of soup.

The oil carries heat without overpowering the delicate bean flavors. Store leftovers in an airtight container for up to 1 month.

Herb-Infused Olive Oil

Combine ¼ cup olive oil with 2 tbsp chopped fresh parsley, 1 tbsp chopped thyme, and 1 crushed garlic clove in a small jar. Let it infuse for 10 minutes before drizzling over the soup.

The fresh herbs elevate the dish with bright, aromatic notes. Keep the mixture refrigerated and use within 5 days.

Smoky Chipotle Aioli

Blend ½ cup vegan mayo with 1 tsp adobo sauce (from canned chipotles), ½ tsp smoked paprika, and 1 tsp lemon juice until smooth. Spread a thin layer on the crispy potato topping before serving for a smoky kick.

This adds a luxurious finish that pairs perfectly with the hearty bean soup. 🌶️

Caramelized Onion Jam

Slow-cook 2 thinly sliced yellow onions with 1 tbsp olive oil and 1 tbsp balsamic vinegar for 45 minutes until deeply caramelized. Stir in 1 tsp maple syrup at the end.

Spoon 1 tbsp per serving over the soup for a sweet-savory depth. The jam adds complexity without overpowering the dish's natural flavors.

Nutrition facts

Servings 4
Amount Per Serving
Calories 320kcal
% Daily Value *
Total Fat 10g13%
Saturated Fat 1.5g8%
Cholesterol 0mg0%
Sodium 750mg33%
Total Carbohydrate 55g19%
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 dried beans instead of canned?

Yes, but you'll need to soak them overnight first! Use 1 cup dried white beans (about 1/3 cup uncooked) and soak in water for 8-12 hours before cooking. Drain and rinse before adding to your soup. Dried beans have a nuttier flavor that works well, but they'll make the soup thicker and require 45-60 minutes extra cooking time.

2

How do I make this soup creamier without dairy?

Blend 1 cup of the soup (including beans and potatoes) with 1/4 cup unsweetened coconut milk until smooth, then stir it back in. For extra richness, add 1 tbsp nutritional yeast to the broth at the start. The beans naturally thicken the soup, but this technique creates a velvety texture that's irresistible.

3

Why did my potatoes turn mushy?

Overcooking or using the wrong potato variety is usually the culprit. Russets hold up best—avoid red or Yukon Gold potatoes which break down faster. Simmer at medium-low heat and cook just until fork-tender (20-25 minutes). For extra protection, parboil the potatoes for 5 minutes before adding to the soup.

4

Can I make this soup in an Instant Pot?

Sauté onions and garlic as directed, then add all ingredients except lemon juice. Seal the lid and cook on High Pressure for 8 minutes, then quick-release. Finish with lemon juice and crispy potatoes. The pressure cooker cuts time to 30 minutes total, but the flavors develop differently—expect slightly softer potatoes.

5

What's the best way to reheat leftovers?

Reheat gently on the stove over low heat with 1/4 cup water or broth to prevent drying out. For crispy potato tops, broil for 2-3 minutes after reheating. Microwaving works in a pinch, but add a splash of water and cover with a damp paper towel to retain moisture. Never reheat above 165°F to maintain food safety.

★★★★★5.0(9 reviews)
Categories Soups & Stews