Finding a hearty, nutritious soup that actually tastes good and doesn’t require hours of hands-on cooking can feel nearly impossible. After all, most bean soups take forever to make, and let’s be honest, they often turn out bland or watery, especially when you’re trying to feed a hungry family on a busy weeknight.
Luckily, this 16 bean soup with ham and kale checks all the boxes: it’s packed with protein and flavor, comes together with minimal effort, and makes enough to feed a crowd or stock your freezer for easy weeknight dinners.

Why You’ll Love This 16 Bean Soup
- Packed with protein and fiber – The 16 bean mix combined with ham makes this a filling, nutritious meal that’ll keep you satisfied for hours.
- Budget-friendly ingredients – Dried beans are incredibly affordable, and this recipe stretches them into a hearty soup that can feed a crowd or provide leftovers for days.
- Loaded with vegetables – Between the kale, carrots, celery, peppers, and onions, you’re getting a ton of vitamins and nutrients in every bowl.
- Freezer-friendly – This soup freezes beautifully, so you can make a big batch and have homemade meals ready to go whenever you need them.
- Cozy comfort food – There’s something about a warm bowl of bean soup with smoky ham that just feels like a hug in a bowl, perfect for chilly days.
What Kind of Bean Soup Mix Should I Use?
Most grocery stores carry a 16-bean soup mix in the dried beans section, and any brand will work great for this recipe. These mixes typically include a variety of beans like pinto, navy, kidney, black beans, and lentils, which create a nice texture and flavor combination. If you can’t find a 16-bean mix specifically, you can substitute with any dried bean medley or even make your own mix using whatever dried beans you have on hand. Just remember that dried beans need to be soaked overnight before cooking, or you can use the quick-soak method by boiling them for a few minutes and letting them sit for an hour.

Options for Substitutions
This soup is pretty forgiving when it comes to swaps, so feel free to work with what you have:
- 16 bean soup mix: Can’t find the 16 bean mix? Use any combination of dried beans you have on hand – a mix of kidney beans, black beans, pinto beans, and white beans works great. Just make sure to soak them the same way you would the original mix.
- Smoked ham: You can swap this with ham hocks, bacon, or even turkey kielbasa for a different smoky flavor. If you’re going meatless, try smoked paprika and a bit of liquid smoke to get that depth.
- Kale: Spinach, collard greens, or Swiss chard all work well here. Just add spinach at the very end since it wilts quickly, while collards can go in with the kale.
- Green pepper: Red or yellow bell peppers work just as well, or you can skip it entirely if peppers aren’t your thing.
- Cilantro: If you’re one of those people who thinks cilantro tastes like soap, parsley makes a fine substitute and adds a fresh, herby note.
- Fresh herbs: Don’t have fresh rosemary and thyme? Use about 1 teaspoon of dried rosemary and 1 teaspoon of dried thyme instead – just remember that dried herbs are more concentrated than fresh.
Watch Out for These Mistakes While Cooking
Skipping the overnight soak for your beans is a recipe for disaster – not only will they take forever to cook, but you’ll end up with unevenly cooked beans where some are mushy and others are still hard.
Another common mistake is adding salt too early in the cooking process, which can actually toughen the beans and make them take longer to soften, so wait until after the beans have cooked for at least 45 minutes before seasoning.
Don’t add the kale at the beginning or it will turn into an unappetizing dark green mush – tossing it in during the last 10-15 minutes keeps it tender but still bright.
If your soup seems too thin after the beans are cooked, mash a few beans against the side of the pot with a spoon to naturally thicken the broth without having to boil off excess liquid.

What to Serve With 16 Bean Soup?
This hearty bean soup is pretty filling on its own, but I love serving it with warm cornbread or crusty dinner rolls for soaking up all that flavorful broth. A simple side salad with a tangy vinaigrette helps balance out the richness of the soup, or you could go with some pickled vegetables for a nice acidic contrast. If you want to make it more of a complete meal, add some extra cornbread on the side and maybe some sliced avocado on top of the soup for creaminess. For a Southern-style spread, serve it alongside coleslaw and extra hot sauce for anyone who likes a kick.
Storage Instructions
Store: This soup gets even better after a day or two in the fridge as all the flavors meld together. Keep it in an airtight container in the refrigerator for up to 5 days. The beans will soak up some of the liquid over time, so you might want to add a splash of water or broth when reheating.
Freeze: Bean soup freezes really well for those busy weeknight dinners. Let it cool completely, then portion it into freezer-safe containers or bags, leaving a bit of room at the top for expansion. It’ll keep in the freezer for up to 3 months.
Reheat: Warm the soup on the stovetop over medium heat, stirring occasionally until heated through. You can also microwave individual portions for 2-3 minutes, stirring halfway through. If it seems too thick, just stir in a little water or broth until you get the consistency you like.
| Preparation Time | 10-15 minutes |
| Cooking Time | 130-145 minutes |
| Total Time | 140-160 minutes |
| Level of Difficulty | Medium |
| Servings | 8 servings |
Estimated Nutrition
Estimated nutrition for the whole recipe (without optional ingredients):
- Calories: 1200-1300
- Protein: 70-80 g
- Fat: 20-25 g
- Carbohydrates: 210-230 g
Ingredients
For the soup base:
- 16 oz bean soup mix (I like Goya 16 Bean Soup Mix)
- 2 sprigs rosemary
- 3 sprigs thyme
- 4 cups kale (stemmed and torn into 2-inch pieces)
- 1 bay leaf
For the ham and vegetable sofrito:
- 2 tsp olive oil (I prefer Bertolli Extra Virgin for sautéing)
- 4 oz smoked ham (cut into 1/2-inch cubes)
- 1 yellow onion
- 2 carrots (peeled and sliced into 1/4-inch rounds)
- 4 garlic cloves
- 1 green bell pepper
- 2 stalks celery
- 2 green onions
- 1/4 cup cilantro
- 2/3 cup tomato sauce (I use Hunt’s for a consistent base)
- 1/2 tsp cumin
- 3.5 tsp salt
- 1.5 tsp black pepper
Step 1: Prepare Mise en Place and Start the Beans
- 16 oz bean soup mix
- 12 cups water
- 1 yellow onion, diced
- 2 carrots, peeled and sliced into 1/4-inch rounds
- 4 garlic cloves, minced
- 1 green bell pepper, diced
- 2 stalks celery, sliced
- 4 oz smoked ham, cut into 1/2-inch cubes
- 4 cups kale, stemmed and torn into 2-inch pieces
Rinse the 16 oz bean soup mix thoroughly under cold water, then soak overnight in a large pot covered with water.
The next day, drain the beans and add 12 cups of fresh water to the pot.
Bring to a boil over high heat, then reduce to medium-low and simmer for 1 hour—this pre-cooks the beans so they’ll be tender by the time everything comes together.
While the beans cook, prepare all your vegetables: dice the yellow onion, peel and slice the carrots into 1/4-inch rounds, mince the 4 garlic cloves, dice the green bell pepper, slice the 2 celery stalks, cut the 4 oz smoked ham into 1/2-inch cubes, and tear the kale into 2-inch pieces after removing the tough stems.
I like to have everything prepped and ready before I start sautéing—it makes the cooking process smooth and allows me to focus on building flavor.
Step 2: Bloom the Aromatics and Build the Flavor Base
- 2 tsp olive oil
- 1 yellow onion, diced
- 2 carrots, sliced into 1/4-inch rounds
- 1 green bell pepper, diced
- 2 stalks celery, sliced
- 4 garlic cloves, minced
Heat 2 tsp olive oil in a large skillet over medium-high heat.
Add the diced onion, sliced carrots, diced bell pepper, and sliced celery—these are your aromatic foundation—and sauté for 3-4 minutes until they start to soften and release their flavors.
Add the minced garlic and cook for another minute until fragrant.
This technique of sautéing vegetables before adding them to the soup ensures they develop deeper, more complex flavors rather than tasting raw or watery.
Step 3: Add Ham and Deepen Flavors
- 4 oz smoked ham, cut into 1/2-inch cubes
- 2/3 cup tomato sauce
Add the cubed smoked ham to the vegetable mixture and cook for 2 minutes, stirring occasionally, to release the ham’s savory flavors into the vegetables.
Pour in the 2/3 cup tomato sauce and stir well to combine, allowing the tomato to coat the vegetables and ham.
Cook for another 2-3 minutes so the tomato sauce integrates with the other ingredients and the raw tomato flavor mellows slightly.
Step 4: Combine Everything and Simmer
- sautéed vegetable-ham-tomato mixture from Step 3
- cooked beans and broth from Step 1
- 2 sprigs rosemary
- 1 bay leaf
- 3 sprigs thyme
- 1/2 tsp cumin
- 3.5 tsp salt
- 1.5 tsp black pepper
By now your beans should have finished their 1-hour cook and be mostly tender.
Add the entire vegetable-ham-tomato mixture from the skillet to the bean pot.
Stir in the 2 sprigs rosemary, 1 bay leaf, and 3 sprigs thyme, plus the 1/2 tsp cumin, 3.5 tsp salt, and 1.5 tsp black pepper.
Bring to a simmer, then reduce heat to medium-low and cover partially.
Cook for 1 hour—this allows the beans to fully soften and all the flavors to marry together into a cohesive, deeply flavored broth.
Step 5: Thicken and Add Kale
- 4 cups kale, stemmed and torn into 2-inch pieces
Uncover the soup and increase the heat to a gentle boil.
Let it boil for 15 minutes—this concentrates the broth and thickens the soup slightly as liquid evaporates.
Add the torn kale and cook for another 10-15 minutes until the kale is tender and has absorbed some of the broth’s flavors.
The bitter notes of the kale will balance beautifully with the rich, savory broth.
Step 6: Finish with Fresh Herbs and Serve
- 2 green onions, chopped
- 1/4 cup cilantro, chopped
Taste the soup and adjust seasoning with additional salt and pepper if needed.
Chop the 2 green onions and 1/4 cup cilantro and stir them in just before serving—I always add fresh herbs at the very end to preserve their bright, vibrant flavor.
Remove the herb sprigs and bay leaf before ladling into bowls.

Nourishing 16 Bean Soup with Ham and Kale
Ingredients
For the soup base::
- 16 oz bean soup mix (I like Goya 16 Bean Soup Mix)
- 2 sprigs rosemary
- 3 sprigs thyme
- 4 cups kale (stemmed and torn into 2-inch pieces)
- 1 bay leaf
For the ham and vegetable sofrito::
- 2 tsp olive oil (I prefer Bertolli Extra Virgin for sautéing)
- 4 oz smoked ham (cut into 1/2-inch cubes)
- 1 yellow onion
- 2 carrots (peeled and sliced into 1/4-inch rounds)
- 4 garlic cloves
- 1 green bell pepper
- 2 stalks celery
- 2 green onions
- 1/4 cup cilantro
- 2/3 cup tomato sauce (I use Hunt's for a consistent base)
- 1/2 tsp cumin
- 3.5 tsp salt
- 1.5 tsp black pepper
Instructions
- Rinse the 16 oz bean soup mix thoroughly under cold water, then soak overnight in a large pot covered with water. The next day, drain the beans and add 12 cups of fresh water to the pot. Bring to a boil over high heat, then reduce to medium-low and simmer for 1 hour—this pre-cooks the beans so they'll be tender by the time everything comes together. While the beans cook, prepare all your vegetables: dice the yellow onion, peel and slice the carrots into 1/4-inch rounds, mince the 4 garlic cloves, dice the green bell pepper, slice the 2 celery stalks, cut the 4 oz smoked ham into 1/2-inch cubes, and tear the kale into 2-inch pieces after removing the tough stems. I like to have everything prepped and ready before I start sautéing—it makes the cooking process smooth and allows me to focus on building flavor.
- Heat 2 tsp olive oil in a large skillet over medium-high heat. Add the diced onion, sliced carrots, diced bell pepper, and sliced celery—these are your aromatic foundation—and sauté for 3-4 minutes until they start to soften and release their flavors. Add the minced garlic and cook for another minute until fragrant. This technique of sautéing vegetables before adding them to the soup ensures they develop deeper, more complex flavors rather than tasting raw or watery.
- Add the cubed smoked ham to the vegetable mixture and cook for 2 minutes, stirring occasionally, to release the ham's savory flavors into the vegetables. Pour in the 2/3 cup tomato sauce and stir well to combine, allowing the tomato to coat the vegetables and ham. Cook for another 2-3 minutes so the tomato sauce integrates with the other ingredients and the raw tomato flavor mellows slightly.
- By now your beans should have finished their 1-hour cook and be mostly tender. Add the entire vegetable-ham-tomato mixture from the skillet to the bean pot. Stir in the 2 sprigs rosemary, 1 bay leaf, and 3 sprigs thyme, plus the 1/2 tsp cumin, 3.5 tsp salt, and 1.5 tsp black pepper. Bring to a simmer, then reduce heat to medium-low and cover partially. Cook for 1 hour—this allows the beans to fully soften and all the flavors to marry together into a cohesive, deeply flavored broth.
- Uncover the soup and increase the heat to a gentle boil. Let it boil for 15 minutes—this concentrates the broth and thickens the soup slightly as liquid evaporates. Add the torn kale and cook for another 10-15 minutes until the kale is tender and has absorbed some of the broth's flavors. The bitter notes of the kale will balance beautifully with the rich, savory broth.
- Taste the soup and adjust seasoning with additional salt and pepper if needed. Chop the 2 green onions and 1/4 cup cilantro and stir them in just before serving—I always add fresh herbs at the very end to preserve their bright, vibrant flavor. Remove the herb sprigs and bay leaf before ladling into bowls.