This flavorful ham and bean soup will warm you up on a chilly day. Packed with tender, smoky ham, and hearty beans, this soup is a satisfying and comforting dish for the whole family.
Table of Contents
This recipe for ham and bean soup is one of my favorite ways to use leftover meat from a baked ham. Don’t throw out that ham bone! I use it to give the soup an even richer taste. I’ll show you how to develop layers of flavor using simple saute and simmering techniques.
I use canned cannellini beans for convenience to make this a quick meal. But you can use dried beans if you have more time to prepare the dish. Each serving is loaded with hearty vegetables, legumes, and savory pork. It’s a perfect, cozy meal that cooks in just 30 minutes!
- Ham: Use leftover baked ham or slow cooker ham; you’ll need 2 cups of chopped pieces or 10 ounces. You can also use diced ham steak from the grocery store if you didn’t make a large roast. If you saved the ham bone, add it to the simmering pot. The extra fat, meat, and bones add more body to the soup. A cooked ham hock is a delicious alternative.
- Vegetables: Use a classic mirepoix, combining diced onions, carrots, and celery. They add a natural sweetness to the soup when lightly browned in olive oil.
- Seasoning: Fresh thyme and bay leaves add an herbaceous note to the stock. Salt and pepper enhance the savory taste.
- Liquid: Add unsalted chicken broth or stock as the soup base. Water or vegetable stock are good swaps. If using a salted stock, omit the added salt, then taste and adjust the seasoning level after simmering. The pork can be very salty, so adding more later is easy.
- Beans: For the fastest option, use canned beans. For the bean and ham soup recipe, I used two 15.5-ounce cans of cannellini beans or 2 ½ cups. I like to rinse and drain them so they aren’t so salty. However, if you want a richer soup, you can add some of the starchy liquid to the dish.
See the recipe card below for all ingredients and measurements (US and metric).
Saute the vegetables
Soften the vegetables
Add the seasonings
Step 1: The onions and carrots have natural sugars, which can be coaxed to the surface. Saute the diced onions in hot oil until lightly browned, stirring occasionally. Then add the sliced celery, followed by the carrots.
Once the mirepoix has some color, it signals the caramelization of the sugar. Add the minced garlic, thyme, salt, and pepper. Briefly cooking the herb in the hot fat infuses more fat-soluble flavor compounds into the stock later.
Simmer the soup
Step 2: Add the ham bone, stock, and bay leaf to the pot of sauteed vegetables. Bring to a boil, cover, and reduce to a simmer. Cover the pot to create a pressure cooker-like environment to melt any fat from the bone and convert collagen into gelatin.
The minimum cooking time is 10 to 15 minutes, which also tenderizes the root vegetables. Alternatively, you can simmer for longer over low heat for 1 hour. The additional time creates a more flavorful ham stock for the soup.
Add the beans and ham
Add the beans
Add the ham meat
Step 3: Remove the large ham bone and bay leaf from the pot. Since the canned white beans and chopped ham are already cooked, reheat over low heat for about 5 minutes.
This keeps the beans intact and prevents the meat from drying out. I garnish with chopped parsley and sliced green onions right before serving. They add a lovely freshness to the savory soup.
This ham and bean soup recipe is easy to customize! Try these tasty variations for your next batch:
- Pork: Add a smoked ham hock to the stock, simmer for 1 hour, then cut the meat off the bone and add it to the soup. Saute bacon strips, cook the vegetables in the grease, then add the chopped pieces to the soup. Add diced ham steak for a fast substitution if you don’t have leftover meat.
- Beans: If using dried white beans, cook 1 ½ cups to yield about 3 cups. Other types of beans can be used, like pinto beans, red kidney beans, or black beans.
- Spices: Add smoked paprika, cumin, coriander, or spicy chipotle and cayenne. Sprinkle in some of my cajun seasoning for a kick of heat!
- Herbs: Add fresh or dried oregano, marjoram, basil, thyme, or rosemary.
- Vegetables: Add corn kernels, diced potatoes, butternut squash, zucchini, green beans, zucchini, red bell pepper, diced tomatoes, or mushrooms. Saute them with the mirepoix before simmering the soup.
- Sweet cornbread
- Buttermilk biscuits
- No-knead bread
- Rosemary foccacia
- Baked potatoes
- Crusty no-knead bread
Frequently asked questions
It can be a little confusing at the grocery store because white beans are a general term. They may also be labeled more specifically as cannellini, great northern beans, or navy beans. They slightly differ in size. Navy beans are the smallest, being more oval. Northern and cannellini have a kidney bean shape.
Typically, white beans like cannellini, navy beans, or great northern beans are used. Cannellini is larger in size. These have a creamy texture and mild flavor. Use pinto or red kidney beans or a blend for a more colorful mix.
There are a few ways to thicken the consistency of the soup. Add the starchy liquid from the canned beans to replace some stock. Puree a portion of the beans, then add it more for texture. Create a roux with butter and flour, or add a cornstarch slurry. Adding cream will add richness to the soup. Simmer the ham bone for at least an hour to extract and convert as much collagen into gelatin for a fuller body.
The soup can be cooled and refrigerated for up to 7 days. Freeze individual portions for up to 2 months.
Substituting dried beans for canned beans in the ham soup
Substitute 1 ½ cups of dried cannellini or navy beans for the two 15.5 ounces of canned beans. This should yield about 2 ½ to 3 cups of cooked beans. I highly recommend quick-soaking the beans to cut down cooking time dramatically. Instead of having to soak them overnight, the process takes 1 hour. Then simmer the beans with the stock and ham bone for 60 to 90 minutes until tender and creamy. Add more liquid as needed.
Ham and Bean Soup
- 2 tablespoons olive oil
- 2 cups diced yellow onion, ½" dice
- 1 cup sliced celery, ¼" thick
- 1 cups diced carrots, ¼" dice
- 1 tablespoon minced garlic
- 1 teaspoon chopped thyme, or ½ teaspoon dried
- 1 teaspoon kosher salt
- ½ teaspoon black pepper
- 1 dried bay leave, optional
- 1 ham bone, or ham hock, optional
- 4 cups unsalted chicken stock, or broth
- 31 ounces canned cannellini beans, rinsed and drained
- 2 cups cooked ham, chopped or shredded
- 1 tablespoon chopped parsley, or sliced green onions
- Saute the Vegetables – Add the olive oil to a Dutch oven or large pot and heat over medium heat. Once hot, add the onions. Stir and cook until softened and lightly brown, about 5 minutes. Add celery, and cook for 3 minutes. Add carrots, and cook for 3 minutes. Add garlic, thyme, salt, and pepper. Stir, and cook for 30 seconds.
- Simmer the Soup – Add the ham bone (if using), chicken stock, and bay leaf to the pan. Bring the stock to a boil, then reduce to a simmer over medium-low heat. Cover and cook until the carrots are tender, about 15 minutes. Alternatively, simmer on low heat for 1 hour to extract more flavor from the bone.
- Add the Beans and Ham – Remove the ham bone and discard the bay leaf. Reduce the heat to low. Add the beans and ham, and cook until warmed through about 5 minutes. If desired, cut off any meat on the bone and add to the soup.
- To Serve – If needed add more stock or water to thin the soup. Season with salt and pepper to taste. Garnish with parsley before serving.
- Recipe Yield: 8 cups
- Serving Size: 1 cup
- Storing: Cool then store in an airtight container in the refrigerator for up to 7 days. Freeze for up to 2 months.
- Reheating: Add more stock or water if needed. Reheat on the stovetop over medium heat or microwave until hot.
Percent Daily Values are based on a 2000-calorie diet. All nutritional information is based on estimated third-party calculations. Each recipe and nutritional value will vary depending on the brands you use, measuring methods, and portion sizes per household.
Tried this recipe?
Tag me on Instagram. I'd love to see how it turns out!