Bean Soup with Ham Bone
This post may contain affiliate sales links. Please read my disclosure policy.
Bean Soup with Ham Bone is a simple and delicious way to use up leftover ham while getting the most out of the bone for a hearty cold weather comfort meal. The real magic happens with the dried navy beans. They soak up every bit of smoky, salty flavor from the ham bone, giving the broth a rich, homemade taste that you just can’t fake. It’s cozy, rustic, and exactly what you want simmering away on a chilly day.

Ingredient Notes + Variations
This bean soup with ham bone is built from simple ingredients that each bring big flavor. A few are worth pointing out since they make all the difference.
- Garlic – A little goes a long way.
- Navy beans – Soak them first so they cook evenly and soften nicely.
- Ham bone or shank – The secret to deep, smoky flavor. A ham hock works too.
- Ham – Leftover ham works best, but store-bought diced ham can work in a pinch.
- Chicken stock – Adds more depth than water alone. Bonus point for using homemade bone broth.
- Carrots and onions – Classic aromatics that bring sweetness.

How to Make Ham and Bean Soup
This ham and bean soup recipe is as easy as it gets. You soak, simmer, shred, and serve. Once everything’s in the pot, your stove does the heavy lifting. For full recipe details, including ingredients and measurements needed, see the printable recipe card down below.
1. Soak the Beans
Rinse, sort and soak dried Navy Beans in a pot of water for at least 2 hours or overnight. As the beans soak, they will begin to rehydrate and swell. Drain and rinse soaked beans, set aside.


2. Saute Veggies
In same pot used to soak the beans, heat olive oil over medium heat. Add onions and saute until translucent. Next, add carrots and saute for 1-2 more minutes. Finally, add garlic and saute for 1-2 minutes being careful not to burn.


3. Add Ham, Shank + Remaining Ingredients
Add ham, ham shank (or bone), broth, water, beans and bay leaf. Bring to a boil, then reduce to simmer.


4. Simmer Low + Slow
Partially cover pot with lid and simmer for 2 hours or until beans are cooked through.
5. Finish + Serve
Remove from heat, remove ham shank (or bone), remove and shred any meat still on bone and add back to the pot. Check seasonings at the very end. Discard the bone.
Add salt and pepper to taste, keeping in mind that ham is VERY salty so it may not be needed at all.
Garnish with fresh parsley and serve hot.




Tips for Success
- Always soak beans for the best texture.
- Discard soaking water for better digestion.
- Use a leftover ham bone from a holiday ham for extra flavor.
- Taste before salting, since ham can be quite salty.
- Add more water if the soup thickens too much as it cooks.

What to Serve with Ham and Bean Soup
Pair this bean soup with ham bone with simple sides that balance out its richness:
- Homemade Dinner Rolls – Perfect for dipping into the broth.
- Cornbread – A little sweet, a little crumbly, so good with soup.
- Kale Salad with White Balsamic Dressing – Fresh, crisp, and tangy enough to balance the richness of the soup.
- Spring Salad – Light, colorful, and packed with crunch for a bright, refreshing contrast.
- 25+ side dishes for ham and bean soup – be sure to check this out before planning the rest of your menu.
This ham and bean soup is the kind of recipe you’ll want on repeat all year long. It’s hearty, cozy, and guaranteed to make the house smell incredible. The printable recipe is below. Have a great day, friends!

Bean Soup with Ham Bone
Ingredients
- 1 lb Navy beans dried
- 2 tablespoons olive oil
- 1 small onion diced, about 1 cup
- 2 cups carrot diced
- 3 cloves garlic minced
- 2 cups ham shredded leftover ham is best!
- 1 ham shank or leftover ham bone
- 4 cups chicken stock or broth
- 4 cups water
- salt to taste*
- black pepper to taste
- 1 bay leaf dried
- 3 tablespoons parsley fresh, chopped – for garnish
Instructions
- Rinse, sort and soak dried Navy Beans in a pot of water for at least 2 hours or overnight.
- Drain and rinse soaked beans, set aside.
- In same pot, heat olive oil over medium heat.
- Add onions and saute until translucent.
- Add carrots and saute for 1-2 more minutes.
- Add garlic and saute for 1-2 minutes being careful not to burn.
- Add ham, ham shank (or bone), broth, water, beans and bay leaf. Bring to a boil, then reduce to simmer.
- Partially cover pot with lid and simmer for 1-2 hours or until beans are cooked through. (this depends on how long you soaked your beans)
- Remove from heat, fish out ham shank (or bone), remove and shred any meat still on bone and add back to the pot. Discard bone.
- Garnish with fresh parsley and serve hot.
Video
Notes
Storing Ham + Bean Soup
Make Ahead and Store in the Fridge – Like many soups, it often tastes better the 2nd day as the flavors have had more time to marry. Let the soup cool to room temperature before transferring it to an airtight container. Store the soup in the refrigerator for up to 3-4 days. To Freeze – Let the soup cool to room temperature before transferring it to an airtight container or a resealable freezer bag. Store the soup in the freezer for up to 3-4 months. To Reheat – When reheating the soup, make sure it is heated to a temperature of 165°F (74°C) to ensure that it is safe to eat. It’s also recommended to thaw frozen soup in the refrigerator overnight before reheating. Note: Freezing and reheating any kind of soup can cause some texture changes in the ingredients, especially in beans. They can become mushy.Nutrition
Variations
- Swap navy beans for great northern beans or cannellini beans.
- Add a pinch of smoked paprika for even more depth.
- Stir in a handful of chopped kale or spinach at the end for greens.
- Use turkey stock and leftover turkey in place of ham for a different twist.
FAQ About Bean Soup with Ham Bone
If you don’t have navy beans on hand, you have a few options! Great Northern beans, cannellini beans, and small white beans can be used as substitutes for navy beans in most recipes. These beans have a similar taste and texture to navy beans, and can be used in the same way in soups, stews, and baked beans. Other options would be white kidney beans, pinto beans, lima beans or black-eyed peas. Keep in mind that any substitution may change the final soup taste slightly.
Yes, you can totally use canned beans for this soup, but keep in mind that my recipe calls for low and slow cooking in order to extract the most flavor and nutrients out of that delicious bone so that is why I didn’t take this shortcut this time. I’m telling you, this makes theeeee MOST delicious broth, so don’t skip it unless you have to. If you are short on time and want to use canned beans, use 3-4 15-oz cans and rinse beans before adding to the pot. Reduce cook time to 30 minutes or less.
How to Thicken Bean Soup with Ham
While it’s perfectly fine to eat this soup as is, you may want to make it thick and creamy. There are a few easy ways to do this.
- Mash some of the beans: Use a potato masher or immersion blender to mash a portion of the beans in the soup. This will release some of the starch from the beans and thicken the liquid.
- Add flour or cornstarch: Mix a tablespoon of flour or cornstarch with a small amount of cold water to make a slurry, then stir it into the soup. Cook the soup for an additional 5-10 minutes to allow the flour or cornstarch to thicken the soup.
- Use a roux: A roux is a mixture of equal parts flour and fat (such as butter or oil). Cook the roux until it turns a golden color, then slowly add it to the soup while whisking to prevent lumps.
- Cook longer: Allow the soup to simmer for a longer period of time. As the soup cooks, the liquid will naturally reduce and thicken.
More Hearty Soup Recipes
- Creamy Chicken Wild Rice Soup
- Zuppa Toscana (Olive Garden copycat)
- Chicken Meatball Soup
- Lemon Chicken Soup
- Chicken Pot Pie Soup Recipe
More Recipes to Try
If you make this recipe, I would really appreciate it if you would give it a star rating and leave your review in the comments! If you have a picture of your finished dish, post it on Instagram using the hashtag #laurenslatest and tagging me @laurens_latest.



