
There’s nothing quite like a steaming bowl of homemade bean soup with ham on a chilly day. This classic comfort food has been a staple in American kitchens for generations, and for good reason. It’s hearty, satisfying, and absolutely delicious. The beauty of this recipe lies in its simplicity and the depth of flavor that develops as the beans and ham simmer together for hours.
I grew up watching my grandmother make this soup, and I’ve since perfected my own version that I’m thrilled to share with you today. The key to the best bean soup with ham is using quality ingredients, giving yourself plenty of time for the flavors to meld, and not skipping any steps. This isn’t a recipe you can rush, but the effort is absolutely worth it.
What makes this bean soup truly special is the combination of smoky ham, tender beans, and a rich, flavorful broth that’s built from scratch. Unlike canned soups, homemade bean soup with ham has a depth and authenticity that simply can’t be replicated. The ham bone adds incredible flavor, while the vegetables create an aromatic base that brings everything together beautifully.
This recipe serves a crowd and actually tastes even better the next day, making it perfect for meal prep or feeding your family throughout the week. I love serving it with crusty bread, cornbread, or oyster crackers on the side. You can also pair it with a fresh salad like my Creamy Pesto Recipe for a lighter accompaniment.
One of the things I adore about this soup is how forgiving it is. You can adjust the ingredients based on what you have on hand, add extra vegetables, or even make it in a slow cooker for ultimate convenience. If you’re looking for other comforting soups and stews, I also recommend checking out my Heavy Cream Alfredo Sauce Recipe for pasta-based comfort food alternatives.
The technique for making this soup is straightforward but requires attention to detail. You’ll start by sautéing your aromatics, then add the beans and ham, and let everything cook low and slow until the beans are perfectly tender. The result is a soup that’s rich, satisfying, and absolutely packed with flavor. Trust me, once you make this recipe, it will become a regular rotation in your meal planning.
I’ve tested this recipe dozens of times to ensure it’s foolproof, and I’m confident that you’ll love it as much as I do. Whether you’re cooking for your family on a weeknight or preparing a big batch for a gathering, this bean soup with ham is guaranteed to be a hit. Serve it hot, with plenty of toppings on the side, and watch as everyone comes back for seconds and thirds.
Ingredients
- 2 tablespoons olive oil
- 1 large onion, diced
- 4 celery stalks, diced
- 4 large carrots, diced
- 1 pound dried navy beans, rinsed and sorted
- 1 ham bone or 1 pound ham hock, skin removed
- 8 cups chicken or vegetable broth
- 4 cups water
- 3 bay leaves
- 1 teaspoon dried thyme
- 1 teaspoon dried oregano
- ½ teaspoon black pepper
- 1 teaspoon salt, plus more to taste
- ½ teaspoon red pepper flakes (optional)
- 2 cloves garlic, minced
- 1 tablespoon apple cider vinegar
- Fresh parsley for garnish
- Diced ham for serving (optional)

Instructions
- Rinse the dried navy beans thoroughly under cold water, removing any debris or discolored beans. Set aside. If you have time, soak the beans in water for at least 4 hours or overnight, which will reduce the cooking time by about 30 minutes and make them more digestible. If you skip soaking, just add an extra 30 minutes to the cooking time.
- Heat olive oil in a large Dutch oven or heavy-bottomed pot over medium-high heat. Once shimmering, add the diced onion, celery, and carrots. This combination is called a mirepoix and forms the aromatic base of your soup.
- Sauté the vegetables for 5-7 minutes, stirring occasionally, until they begin to soften and become fragrant. The onions should start to become translucent around the edges. Add the minced garlic and cook for another 1-2 minutes until fragrant.
- Pour in the broth and water, scraping up any browned bits from the bottom of the pot with a wooden spoon. These browned bits, called fond, are packed with flavor and will enrich your soup.
- Add the rinsed and drained beans, ham bone or ham hock, bay leaves, thyme, oregano, black pepper, and salt. Stir well to combine all ingredients.
- Bring the soup to a boil over medium-high heat. Once boiling, reduce the heat to low and let the soup simmer gently, uncovered, for 2 to 2.5 hours. The beans should become very tender and begin to break down slightly, creating a thicker, creamier soup.
- About halfway through cooking (around the 1-hour mark), give the soup a good stir and taste for seasoning. Add more salt and pepper if needed. The flavors will continue to deepen as it cooks.
- When the beans are very tender and the ham bone has released all its flavor into the broth, carefully remove the ham bone from the pot using tongs. Let it cool slightly on a cutting board.
- Once the ham bone is cool enough to handle, pick any meat off the bone and shred it into bite-sized pieces. Discard the bone and any fat or skin.
- Return the shredded ham to the pot and stir in the apple cider vinegar. The vinegar brightens the flavors and adds a subtle tang that balances the richness of the ham and beans.
- Taste the soup again and adjust seasoning with additional salt, pepper, or red pepper flakes as desired. If you prefer a brothier soup, you can add more liquid at this point. For a thicker consistency, let it simmer a few more minutes.
- Ladle the soup into bowls and garnish with fresh chopped parsley and additional diced ham if desired. Serve hot with crusty bread, cornbread, or your favorite crackers on the side.

Pro Tips
Slow Cooker Method: For a hands-off approach, you can make this soup in a slow cooker. Sauté the aromatics on the stovetop first, then transfer to your slow cooker along with all remaining ingredients. Cook on low for 6-8 hours or on high for 3-4 hours. Shred the ham in the last 30 minutes of cooking. This method is perfect for busy weekdays.
Bean Variations: While navy beans are traditional, you can substitute with other beans like great northern beans, cannellini beans, or even a mix of different varieties. Each will give you a slightly different texture and flavor profile. Avoid using black beans or kidney beans as their stronger flavors may overpower the delicate balance of this dish.
Ham Options: You can use a ham bone left over from a holiday ham, a ham hock from your butcher, or even a smoked ham bone. The type of ham you use will affect the final flavor, so choose one you enjoy. For a smokier taste, look for hickory-smoked ham bones at specialty butchers.
Vegetable Additions: Feel free to add other vegetables like diced potatoes, green beans, or spinach in the last 15 minutes of cooking. This keeps the soup interesting and adds extra nutrients. Some people also like to add diced tomatoes or tomato paste for additional depth.
Seasoning Notes: Taste as you go, especially toward the end of cooking. The saltiness will concentrate as the soup reduces, so it’s easy to over-salt if you’re not careful. Start with less salt and add more as needed.
Serving Suggestions: This soup pairs beautifully with cornbread, which you can make from scratch or purchase. Try serving it alongside my Heavy Cream Pasta Recipe for a complete meal. You can also add toppings like crispy bacon bits, shredded cheese, sour cream, or croutons.
Leftover Ham: If you have extra ham from the ham bone, you can reserve it for sandwiches, add it to salads, or use it in other recipes. Don’t waste this valuable ingredient!
Broth Quality: Using homemade or high-quality store-bought broth makes a noticeable difference in the final soup. Avoid using bouillon cubes or very salty broths, as they can make the soup overly salty.
