Make this ham soup recipe with leftover ham, potatoes, carrots, and simple seasonings for a filling soup with fine homemade flavor!

If you have leftover ham sitting in your refrigerator and you want to turn it into something people will happily come back for seconds of, this ham soup recipe is exactly where I would start!
Smoky chunks of ham, creamy white beans, buttery potatoes, sweet carrots, celery, garlic, herbs, and a savory broth all simmer together until every spoonful tastes rich and full without feeling overly heavy.
Best of all, this is very much a real-life soup: one pot, familiar ingredients, plenty of flexibility, and absolutely no requirement to spend your afternoon hovering nervously over a Dutch oven!!
Ingredients
- 1 tablespoon olive oil or unsalted butter
- 1 medium yellow onion, diced, about 1 1/2 cups
- 2 medium carrots, peeled and sliced into 1/4 inch rounds or half moons
- 2 celery stalks, diced
- 3 large garlic cloves, finely minced
- 1 1/2 pounds Yukon Gold potatoes, cut into roughly 1/2 inch cubes
- 2 cans (15 ounces each) cannellini beans or Great Northern beans, drained and rinsed
- 6 cups low-sodium chicken broth
- 2 cups cooked ham, cut into 1/2 inch cubes
- 1 teaspoon dried thyme
- 1/2 teaspoon freshly ground black pepper
- 1/4 teaspoon smoked paprika
- 1 bay leaf
- 1 tablespoon Dijon mustard
- 1 to 2 teaspoons apple cider vinegar, added to taste
- 2 tablespoons chopped fresh parsley, plus more for serving
- Salt, only as needed after soup has finished cooking
Optional, but excellent: If your leftover ham came with a meaty ham bone, add it while soup simmers. It gives broth even more ham flavor, and any meat clinging to bone can be pulled off and stirred back into pot.
Servings: 6 generous servings
Approximate serving size: 1 1/2 to 2 cups
How to Make Ham Soup

Place a 5 to 6 quart Dutch oven or heavy soup pot over medium heat and give it a minute to warm, then add olive oil or butter. Add diced onion, carrots, and celery along with a small pinch of black pepper, but hold off on salt right now because ham and broth will bring plenty of their own later.
Cook vegetables for about 7 to 8 minutes, stirring every minute or two, until onion looks translucent, celery has softened around its edges, and carrots have begun to lose their raw firmness.
You are not trying to brown everything aggressively here. If vegetables begin sticking or turning dark quickly, lower heat a notch. I would rather give them an extra minute than scorch onion and spend rest of dinner pretending that slightly burnt flavor was intentional!
Add minced garlic and cook for about 30 to 45 seconds, stirring constantly. Watch your nose as much as your clock here. As soon as garlic smells fragrant, move on. Garlic goes from wonderful to bitter faster than someone can ask, “What smells so good?”
Stir in dried thyme, smoked paprika, and Dijon mustard, letting everything coat warm vegetables for about 20 seconds.
Add diced potatoes, drained beans, chicken broth, and bay leaf, then stir well and scrape bottom of pot with your spoon so any flavorful bits stuck there join soup instead of remaining behind. If you have a ham bone, nestle it into broth now.
Increase heat to medium-high and bring soup just to a boil, then immediately lower heat to medium-low so you have a steady gentle simmer.
You want little bubbles regularly rising around edges and through center, not a furious rolling boil that knocks potatoes around like they owe somebody money.
Liquid at a gentle simmer will generally be around 190°F to 200°F. Partially cover pot, leaving lid slightly offset so steam can escape, and simmer for 18 to 25 minutes.
Start checking potatoes around 18 minute mark because size matters more than any timer I can give you. Slide tip of a small knife or fork into one of larger potato cubes.
It should enter easily with a little resistance remaining, and potato should hold together rather than collapse immediately. Carrots should also be tender enough to bite without crunching.
Once potatoes are nearly tender, remove ham bone if you used one and set it on a plate until cool enough to handle.
Now take about 1 cup of beans, potatoes, and broth from pot and mash them in a bowl with a fork, or simply press some beans and potatoes directly against side of pot using back of your spoon.
Stir that mixture back into soup. Do not mash half your dinner into oblivion! A small amount is all you need to give broth a silkier, slightly thicker body while keeping soup chunky.
Add 2 cups diced cooked ham and stir gently. If you used a meaty ham bone, pull off any good pieces of ham, discard bone and excess fat, and return meat to pot.
Let soup continue simmering gently for another 8 to 10 minutes, just until ham is hot and potatoes are completely tender.
Adding ham later instead of simmering it for 40 minutes helps prevent already-cooked meat from becoming unnecessarily firm.
At this point, taste broth before reaching for salt. This is one of those little kitchen decisions that makes a much bigger difference than blindly following a measurement.
Some hams are mild, others could practically season an entire swimming pool. If broth tastes flat, add a small pinch of salt. If salt level is already right but flavor feels a little heavy, do not add more seasoning yet.
Remove bay leaf, stir in 1 teaspoon apple cider vinegar, then taste again. Give it a few seconds before deciding.
That small amount of acid should make ham taste smokier, carrots sweeter, and broth livelier without announcing itself as vinegar. If soup still feels like it needs a little lift, add second teaspoon.
Stir in chopped parsley and plenty of freshly ground black pepper. Turn off heat and let soup sit uncovered for 5 minutes before serving.
This short rest gives broth time to settle and thicken slightly, and it also prevents that first spoonful from attempting to remove several layers of skin from your tongue!
Serving Suggestions

Serve this ham soup piping hot in wide bowls with a sprinkle of fresh parsley and several turns of black pepper over top.
For dipping, I love it with:
- Crusty sourdough bread
- Warm dinner rolls
- Buttermilk biscuits
- Garlic bread
- Cornbread
- Toasted baguette slices
For something fresh alongside, try a simple green salad with vinaigrette, roasted Brussels sprouts, steamed green beans, or a crunchy cabbage slaw.
If you want to turn it into a bigger dinner, make grilled cheese sandwiches alongside. Ham soup plus a crisp, buttery grilled cheese is not exactly a hardship.
A really good ham soup recipe should taste like you intentionally planned an excellent dinner, not like you were desperately trying to dispose of leftover ham!
Hungry for more feel-good meals? Explore these 21 Anti-Inflammatory Breakfast Recipes for a nourishing start and 10 Anti-Inflammatory Dinner Recipes for delicious evenings that make healthy eating easy!




