A pot of ham and bean soup is my favorite reward after a big holiday dinner. That leftover ham bone, with all its smoky bits still clinging to it, simmers with creamy navy beans, carrots, celery, onion and herbs until the broth turns rich and thick. It is humble, filling, inexpensive and one of the most comforting things you can make in December.
In this post I explain why the recipe works, the ingredients, how to choose and soak your beans, the step-by-step method, tips, variations for the slow cooker and pressure cooker, what to serve alongside, common mistakes and how to store and freeze it. The printable recipe card with exact measurements and estimated nutrition is at the bottom of the post.

Why This Ham and Bean Soup Works
Great bean soup is all about slow, gentle cooking and building flavor in layers. This version leans on a few simple techniques that make a big difference.
- The ham bone does the heavy lifting. As it simmers, the bone releases smoky flavor and collagen that give the broth a rich, silky body.
- Navy beans turn creamy. Small white beans hold their shape but break down slightly at the edges, naturally thickening the soup.
- A sautéed vegetable base. Softening onion, carrot and celery in a little oil adds a sweet, savory foundation.
- Salt goes in at the end. Ham is salty, and every ham is different, so seasoning after simmering prevents an oversalted pot.
- A splash of vinegar. A spoonful of apple cider vinegar at the end brightens all those deep, smoky flavors.
This leftover ham soup is also wonderfully thrifty. One bag of dried beans, a few vegetables and the scraps from your holiday ham feed a family of eight with plenty left to freeze.
Ingredients You Will Need
Here is what goes into the pot and why each ingredient matters.
- Dried navy beans: One pound (450 g), rinsed and sorted. Great Northern beans are a good substitute.
- Ham bone: A meaty leftover bone from a spiral or bone-in ham. Two smoked ham hocks work if you do not have one.
- Diced cooked ham: About 2 cups (300 g) of leftover ham, cut into bite-size cubes.
- Aromatics: One large onion, two carrots, two celery ribs and three cloves of garlic.
- Liquid: Six cups of low-sodium chicken broth plus two cups of water. Low-sodium broth leaves room for the salty ham.
- Herbs and spices: Bay leaves, dried thyme, smoked paprika and black pepper.
- To finish: Apple cider vinegar, fresh parsley and salt to taste.
If your ham bone is very meaty, you may not need the full 2 cups of diced ham. Pull the meat from the bone after simmering and add diced ham only as needed.
Choosing and Soaking the Beans
Soaking dried beans is not strictly required, but it shortens the cooking time and helps them cook more evenly. Here are your options.
- Overnight soak: Cover the beans with 3 inches of cold water and let them sit for 8 to 12 hours. Drain and rinse before cooking. This is my preferred method.
- Quick soak: Cover the beans with water, bring to a boil for 2 minutes, then remove from the heat, cover and let stand for 1 hour. Drain and rinse.
- No soak: You can cook unsoaked beans, but plan on 3 to 3 1/2 hours of simmering and add more liquid as needed.
- Check freshness. Very old dried beans may never soften. Buy from a store with good turnover and use within about a year.
Navy beans give the creamiest result. Great Northern beans are a little larger and firmer, while cannellini beans stay the most intact if you like distinct, whole beans in your bowl.
How to Make Ham and Bean Soup
A heavy 6 to 7-quart Dutch oven or soup pot is perfect for this recipe. Once everything is in the pot, it mostly cooks on its own.
- Soak the beans. Soak the beans overnight, then drain and rinse them well.
- Sauté the vegetables. Heat the olive oil in the pot over medium heat. Add the onion, carrots and celery and cook for 6 to 8 minutes until softened. Stir in the garlic and cook for 30 seconds.
- Add everything else. Add the beans, ham bone, broth, water, bay leaves, thyme, smoked paprika and pepper. The liquid should cover the beans by about 2 inches.
- Simmer. Bring to a boil, then reduce the heat to low. Cover with the lid slightly ajar and simmer gently for 1 1/2 to 2 hours, stirring occasionally, until the beans are creamy and tender.
- Pick the bone. Remove the ham bone and bay leaves. When cool enough to handle, pull off any meat, chop it and return it to the pot. Discard the bone.
- Thicken. Mash about 1 cup of the beans against the side of the pot or blend briefly with an immersion blender to thicken the broth.
- Finish. Stir in the diced ham and simmer for 10 minutes more. Add the vinegar, taste and season with salt, then sprinkle with parsley.

If the soup gets too thick while simmering, add a splash of water or broth. If it seems thin once the beans are tender, simmer uncovered for 15 more minutes or mash a few more beans.
Tips for the Best Leftover Ham Soup
- Simmer gently. A hard boil breaks beans apart and makes the skins tough. You want small, lazy bubbles.
- Wait to add salt. Taste only after the ham has simmered, then season carefully.
- Keep acidic ingredients for the end. Tomatoes and vinegar can slow down how quickly beans soften.
- Use the whole bone. Even a bone with little meat adds flavor and body to the broth.
- Make it a day ahead. The flavors deepen overnight, and the soup thickens beautifully in the fridge.
Still have holiday leftovers? This soup is the perfect next step after my honey glazed ham, and turkey fans will love my cozy leftover turkey soup. For more warming bowls, visit my full collection of soups and stews.
Slow Cooker, Pressure Cooker and Canned Bean Variations
- Slow cooker: Add the soaked beans, sautéed vegetables, ham bone, broth, water and seasonings to a 6-quart slow cooker. Cook on low for 8 to 9 hours or high for 4 to 5 hours, until the beans are tender. Finish with the diced ham, vinegar and salt.
- Pressure cooker: Sauté the vegetables using the sauté function, then add soaked beans, bone, 7 cups of liquid and seasonings. Cook on high pressure for 15 minutes with a full natural release.
- Canned beans: Use four 15-ounce cans of navy or Great Northern beans, drained and rinsed. Reduce the broth to 5 cups and simmer with the ham bone for 45 minutes.
- Add greens: Stir in a few handfuls of chopped kale or spinach for the last 5 minutes.
- Potato and ham: Add 2 diced Yukon gold potatoes with the beans for an even heartier bowl.
- Tomato twist: Stir in a 14-ounce can of diced tomatoes after the beans are tender.
No matter which method you choose, add the vinegar and salt at the very end so you can adjust the flavor to your ham.
What to Serve With Ham and Bean Soup
This soup is a complete meal, but a warm bread or a crisp side makes it even better.
- Cornbread: The classic pairing. A slightly sweet slice is perfect for dunking.
- Crusty bread: A warm baguette or sourdough loaf to soak up the broth.
- Garlic bread: Try my cheesy garlic pull-apart bread for a cozy family dinner.
- Green salad: A simple salad with a tangy vinaigrette balances the rich, smoky soup.
- Pickled onions or hot sauce: A little acidity or heat on top is wonderful.
I love to set out bowls of chopped green onion, shredded cheddar and a bottle of hot sauce so everyone can top their soup the way they like it.
Common Mistakes and How to Fix Them
Here are the most common problems with homemade bean soup and how to solve them.
| Problem | Likely cause | How to fix it |
|---|---|---|
| Beans still hard | Old beans or no soak | Keep simmering and add water; buy fresher beans next time |
| Soup too salty | Salty ham plus regular broth | Add water, unsalted beans or a peeled diced potato |
| Soup too thin | Not enough beans broken down | Mash or blend 1 to 2 cups of beans |
| Mushy, broken beans | Boiled too hard | Keep the soup at a gentle simmer |
| Flat flavor | No acid or not enough seasoning | Add vinegar, pepper and a pinch of smoked paprika |
Make Ahead, Storage and Freezing
Cool the soup quickly and refrigerate it in shallow airtight containers within 2 hours. It keeps for up to 4 days in the fridge and thickens as it sits, so add a splash of water or broth when reheating. Reheat leftovers until steaming and 165°F (74°C). The USDA has helpful guidance on ham and food safety, including how long leftover ham keeps.
Ham and bean soup freezes beautifully. Freeze it in portions for up to 3 months, leaving an inch of space at the top of each container. Thaw overnight in the fridge and reheat on the stove over medium heat, stirring often.
You can also freeze the ham bone itself after your holiday dinner. Wrap it well and freeze for up to 2 months, then add it straight from the freezer to the pot whenever a soup craving strikes.
Frequently Asked Questions
Do I have to soak the beans for ham and bean soup?
No, but soaking shortens the cooking time and helps the beans cook evenly. Unsoaked beans need about 3 to 3 1/2 hours of simmering.
Can I make ham and bean soup without a ham bone?
Yes. Use two smoked ham hocks or an extra cup of diced ham and a little more smoked paprika.
What beans are best for ham and bean soup?
Navy beans are the classic choice because they turn creamy. Great Northern and cannellini beans work well too.
How do I thicken bean soup?
Mash or blend 1 to 2 cups of the cooked beans and stir them back in, or simmer uncovered for 15 minutes.
Can I freeze ham and bean soup?
Yes. It freezes well for up to 3 months. Thaw overnight in the fridge and reheat on the stove.
Ready to cook? Here is the full printable ham and bean soup recipe with exact measurements and estimated nutrition.

Hearty Ham and Bean Soup
Ingredients
Method
- Cover the beans with 3 inches of cold water and soak for 8 to 12 hours. Drain and rinse.
- Heat the oil in a Dutch oven over medium heat. Cook the onion, carrots and celery for 6 to 8 minutes until softened. Add the garlic and cook for 30 seconds.
- Add the beans, ham bone, broth, water, bay leaves, thyme, smoked paprika and pepper.
- Bring to a boil, reduce the heat to low and simmer with the lid ajar for 1 1/2 to 2 hours, stirring occasionally, until the beans are tender.
- Remove the ham bone and bay leaves. Pull off any meat, chop it and return it to the pot. Discard the bone.
- Mash about 1 cup of the beans against the side of the pot to thicken the soup.
- Stir in the diced ham and simmer for 10 minutes. Add the vinegar, season with salt to taste and garnish with parsley.
Notes
I hope this cozy pot of soup helps you make the most of every last bit of your holiday ham. If you make it, please leave a comment and a star rating below and tell me what you served alongside it. Happy cooking, friends!
Free email bonus
30-Minute Meals
Loved this recipe? Get my collection of fast, family-favorite dinners, plus new seasonal recipes straight to your inbox.
