This Ham and Bean Soup is the ultimate cold-weather comfort food, built around a smoky ham bone, creamy white beans, and a savory broth loaded with tender vegetables. It's the kind of recipe that turns humble leftovers into something truly special, simmering low and slow until every spoonful is rich, hearty, and deeply satisfying. Whether you're feeding a hungry family or meal-prepping for the week, this classic American soup delivers big flavor with very little effort.
Large Dutch oven or heavy-bottomed pot - 6–8 quart / 5.7–7.5 liter capacity
Wooden spoon or silicone spatula
Chef's knife and cutting board
Measuring cups and spoons
Ladle - For serving
Colander or strainer - For draining and rinsing beans
Tongs - For removing the ham bone
Immersion blender - (optional) For partially blending the soup to thicken broth
Ingredients
1meaty ham bone - or 2 cups / 300g diced cooked ham
1lbdried Great Northern beans or navy beans - 450g; or substitute 3 cans (45 oz total) drained white beans
1largeyellow onion - diced
3stalkscelery - diced
3mediumcarrots - peeled and diced
5clovesgarlic - minced
2tbspolive oil - 30ml
8cupslow-sodium chicken broth - 2 liters; or water
2bay leaves
1tspdried thyme
1tspsmoked paprika
1/2tspblack pepper
1/2tspkosher salt - adjust to taste based on saltiness of ham
For Garnish
fresh parsley - chopped
Instructions
Place dried beans in a large bowl, cover with at least 3 inches of cold water, and soak overnight (8–12 hours), or quick-soak by boiling for 2 minutes then resting off heat for 1 hour. Drain and rinse well before using. Skip this step if using canned beans.
Heat olive oil in a large Dutch oven over medium heat, then add the diced onion, celery, and carrots and cook for 6–8 minutes until softened. Add the minced garlic and stir for 60 seconds until fragrant.
Sprinkle the smoked paprika, dried thyme, and black pepper over the vegetables and stir for about 30 seconds to lightly toast the spices in the oil.
Add the drained beans and ham bone to the pot, then pour in the chicken broth, ensuring everything is submerged. Add the bay leaves and stir gently to combine.
Bring the soup to a boil over high heat, skimming any foam from the surface, then reduce to low, partially cover, and simmer for 60–90 minutes (or 30–40 minutes for canned beans) until beans are completely tender.
Remove the ham bone with tongs, let it cool for 5 minutes, then shred all remaining meat from the bone using two forks. Discard the bone and bay leaves, then return the shredded ham to the pot.
Mash about one-quarter to one-third of the beans with the back of a spoon (or use an immersion blender for a few pulses) to thicken the broth, then taste and add salt as needed.
Ladle the soup into bowls, garnish with freshly chopped parsley, and serve hot with cornbread or crusty bread on the side.
Notes
Always taste for salt at the very end of cooking — the ham bone releases significant saltiness as it simmers, and adding salt early can result in an overly salty soup.
If you don't have a ham bone, use 2 cups of diced cooked ham plus an extra teaspoon of smoked paprika and ½ teaspoon of liquid smoke to replicate the smoky depth.
Don't skip soaking dried beans — unsoaked beans can take 2–3 hours to cook and may have an uneven texture with tough outer skins.
Skim the gray foam that rises to the surface during the initial boil. It keeps the broth clean, clear, and better-tasting.
For an extra layer of umami, add a parmesan rind to the pot while the soup simmers and remove it before serving.
Slow cooker method: Sauté aromatics on the stovetop first, then transfer everything to a slow cooker and cook on low for 7–8 hours or high for 4–5 hours.
Store leftovers in an airtight container in the refrigerator for up to 4–5 days. The beans absorb liquid as the soup sits, so add a splash of broth when reheating.
This soup freezes beautifully for up to 3 months. Portion into freezer-safe containers with a little headspace and thaw overnight in the refrigerator.
To vary the recipe, stir in chopped kale or collard greens during the last 15 minutes, or add a can of diced tomatoes for a slightly tangy broth.
Great Northern beans, navy beans, cannellini beans, and pinto beans all work well — use whatever you have on hand or prefer.