Soups & Stews
This ham soup recipe delivers the best ham soup ever—rich, velvety broth infused with smoky bacon and Gruyère cheese that melts into every spoonful. 💛 The secret lies in slow simmering, which transforms tough ham into tender, flavorful pieces while building depth through caramelized aromatics.
I developed this version after years of testing, ensuring each ingredient plays its part without overpowering the others.
What sets this recipe apart is the balance of textures and flavors: crispy bacon bits on top provide a satisfying crunch, while the Gruyère velouté creates a luxurious, creamy base that coats every bite.
The slow cooking process allows the broth to develop a rich, savory depth, making it taste even better the next day—perfect for meal prep or feeding a crowd.
By the time you finish, you'll have a restaurant-quality ham soup that's heartier than traditional versions yet still light enough for any meal. The combination of tender ham, caramelized onions, and aromatic herbs creates a symphony of flavors that's both comforting and sophisticated.
This is the kind of soup that disappears quickly, leaving everyone asking for seconds.
Whether you're serving it as a main course or a cozy side, this recipe delivers on its promise of being the best ham soup ever. The instructions are straightforward, but the results are anything but ordinary—creamy, flavorful, and packed with the kind of warmth that makes every spoonful satisfying.
Ingredients for best ham soup recipe ever
Six servings of velvety ham soup with smoky bacon crunch and melty Gruyère—this is the one you'll make again and again.
| Ingredient | Amount | Notes |
|---|---|---|
| Bone-In Ham Hock 🐷 | 1 lb | Smoked for extra depth |
| Thick-Cut Bacon 🥓 | 8 oz | Smoked, cut into 1-inch pieces |
| Yellow Onions 🧅 | 2 whole | Medium size, sliced thin |
| Carrots 🥕 | 4 whole | Medium size, peeled and chopped |
| Celery Stalks 🥬 | 4 whole | Cut into 1-inch pieces |
| Garlic Cloves 🧄 | 6 cloves | Minced for aromatic punch |
| Gruyère Cheese 🧀 | 1 ½ cups | Freshly grated, aged |
| Heavy Cream 🥛 | 1 cup | Full-fat for richness |
| Chicken Broth 💧 | 6 cups | Low-sodium preferred |
| Fresh Thyme 🌿 | 2 tbsp | Leaves only, chopped fine |
| Fresh Parsley 🌿 | ¼ cup | Chopped for garnish |
| Black Peppercorns 🌶️ | 1 tsp | Freshly cracked |
| Bay Leaves 🌿 | 2 whole | Removed before serving |
| Olive Oil 🫒 | 2 tbsp | For caramelizing onions |
| Salt 🧂 | 1 ½ tsp | Kosher or sea salt |
The ham hock is non-negotiable here—it's the secret to that restaurant-quality depth. Look for bone-in, smoked hocks at your butcher or the deli section of Whole Foods—they've got the best selection. If you can't find smoked, regular ham hock works, but you'll need to add a splash of liquid smoke (about 1 tsp) to mimic that smoky flavor. The bacon? Thick-cut, smoked is ideal—cut it yourself for even cooking. I always grab a pound of Oscar Mayer smoked bacon when I'm doing a big batch, but any good-quality brand works. Fresh thyme and bay leaves? Buy them fresh—dried just won't give you that same bright aroma that carries through the soup.
No smoked ham hock? Regular ham hock plus 1 tsp liquid smoke gets you close. Running low on Gruyère? Comté or Emmental work in a pinch—they melt beautifully too. Fresh thyme is ideal, but dried at one-third the amount works if that's what you've got. The bacon can be swapped for pancetta if you're feeling fancy. For the broth, low-sodium is key—you don't want to over-salt this rich soup. The carrots and celery can be baby versions if that's what's in your fridge—just chop them small so they cook evenly. And if you're making this ahead, freeze the ham and bacon separately until you're ready to cook—it keeps for months.
This soup tastes even better the next day—make extra if you can. Store it in the fridge for up to 5 days, or freeze portions for 3 months. The bacon on top gets crispy again when reheated, so save some fresh bits for garnish. I always keep a container in the freezer so I can whip up a quick lunch when I'm short on time. The Gruyère will separate slightly when reheated—just stir it in at the end to get that creamy velouté texture back. And trust me, the first bowl is always the best—save some for later!
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just toss everything in one pot and walk away. The ham hock and bacon render their own fat, so you don’t even need to pre-cook the veggies. Chop once, stir occasionally, and let the flavors meld while you do whatever else needs doing.
- Smoky-Sweet Obsession: That crispy bacon and salty ham hock? It’s the soul of this soup. The onions caramelize right in the broth, and the carrots and celery soak up all the savory goodness—no one will believe it’s this simple to make something this ridiculously good.
- Weeknight & Holiday Hero: Make a double batch on Sunday, and you’ve got lunch covered all week. Or serve it at Thanksgiving—it’s hearty enough for a crowd but still feels special. My in-laws think I slaved over it, but honestly? It’s just a pot of love with minimal effort.
- Budget-Friendly Leftovers: A ham hock costs next to nothing, and bacon stretches further than you’d think. The soup only gets better the next day as the flavors deepen, so you’re not just feeding your family—you’re saving money. (And let’s be real, leftovers mean one less meal to stress about.)
Step-by-step instructions for smoky bacon crunch over creamy Gruyère velout
This soup delivers restaurant-quality depth with a perfect balance of smoky bacon, rich Gruyère, and velvety broth.
🔥 Step 1: Render Bacon and Build the Soup Base
Heat a large Dutch oven over medium heat and add the 8 oz thick-cut bacon in a single layer. Cook undisturbed for 8-10 minutes until the edges are deep golden brown and crispy. This creates that irresistible crunch we'll save for garnish. Remove the bacon with a slotted spoon and set aside on paper towels, leaving all that rendered fat in the pot.
Add the 2 tbsp olive oil to the bacon fat and stir to combine. Add the 2 whole yellow onions, 4 whole carrots, and 4 whole celery stalks all at once. Cook for 8-10 minutes stirring occasionally until the vegetables soften and the onions begin to caramelize—this builds the soup's foundational flavor. Add the 6 cloves garlic cloves and cook for another 30 seconds until fragrant.
🍳 Step 2: Simmer the Vegetables and Ham Hock
Pour in the 6 cups chicken broth and bring to a gentle boil. Add the 1 lb bone-in ham hock, 2 whole bay leaves, 1.5 tsp salt, and 1 tsp black peppercorns. Reduce heat to low and let it simmer uncovered for 1 hour. This long simmer time is crucial—it allows the ham hock to become fork-tender and infuses the broth with deep, smoky flavor.
After 1 hour, check the ham hock with a fork. It should slide in easily with minimal resistance. If not, continue simmering for another 15-20 minutes until tender. Skim off any foam that rises to the surface to keep the broth clear and clean.
🥘 Step 3: Add Aromatics and Prepare the Cheese
Stir in the 2 tbsp fresh thyme and let it steep in the broth for 10 minutes. Meanwhile, shred the ham hock meat from the bone using two forks, discarding the bone and skin. Set the meat aside. Grate the 1.5 cups Gruyère cheese using a box grater for a fine, even texture—this ensures it melts smoothly into the soup.
Remove the bay leaves from the soup. Add the shredded ham hock meat and bring the soup back to a gentle simmer. The cheese will melt into the broth, creating that luxurious, velvety texture we're after. Taste and adjust seasoning with more salt if needed—Gruyère is salty, so go easy.
⏰ Step 4: Finish with Cream and Garnish
Reduce heat to low and stir in the 1 cup heavy cream. Simmer gently for 5 minutes to let the flavors meld together. The soup should be creamy but not overly thick—if it's too thick, stir in 2-3 tablespoons of the reserved broth to reach your desired consistency.
Ladle the soup into bowls, garnishing each serving with the crispy bacon pieces, 0.25 cup fresh parsley, and a final sprinkle of freshly cracked black pepper. The contrast of the crispy bacon against the creamy velout is what makes this soup truly special. Serve immediately while the bacon stays crunchy!
Pro Tips For Making Best Ham Soup Recipe Ever
- CRISP THE BACON FIRST: I learned this the hard way—skipping this step means your soup will taste like it’s missing something. Render the thick-cut bacon on its own in a cold pan over medium heat until the fat pools deep golden and the edges are crisp. That fat is liquid gold for flavor, and it won’t render as well if you toss it in later with the ham hock.
- SCORE THE HAM HOCK: Doesn’t have to be fancy—just make a few deep cuts through the meaty parts with a sharp knife before adding it to the pot. This lets the collagen break down faster and the meat fall off the bone easier. (Yes, even if you’re impatient like me, give it 2-3 hours on low simmer—this isn’t the step to rush.)
- CHAR THE ONIONS LOW AND SLOW: After the bacon fat is rendered, remove the pan from heat and let it cool for 5 minutes—then add the onions, carrots, and celery. Cook on low heat for 20 minutes, stirring occasionally, until the onions are deep brown and the veggies soften. High heat burns them before they caramelize, and you’ll taste it in every spoonful.
- SALT THE WATER LESS: The ham hock and bacon are already packed with salt, so skip adding extra to the broth. Taste the water before adding the ham—if it’s bland, a pinch of salt is fine, but resist the urge to go heavy. Over-salting here means you’ll have to dilute the soup later, and that ruins the rich, concentrated flavor you’re working for.
Storing and reheating this best ham soup recipe ever
Refrigerator Storage
Let your ham soup cool to room temperature (about 30-60 minutes) before storing. Transfer it to an airtight container—I love using glass Pyrex with snap-on lids for easy reheating.
Store in the fridge at 40°F or below for up to 5 days. The flavors actually deepen overnight as the Gruyère and ham meld together beautifully. 💛
Pro tip: Save some crispy bacon bits separately in a small container to sprinkle fresh on top when reheating. This keeps that perfect crunch intact while the soup warms through.
Freezer Prep Tips
For long-term storage, freeze portions in quart-sized freezer bags (leave 1 inch headspace for expansion). I like to portion into 2-cup servings so I can thaw just what I need.
Label with the date—this soup stays delicious for up to 3 months in the freezer. The Gruyère may separate slightly, but it melts back together beautifully when reheated.
When freezing, cool the soup completely first to prevent ice crystals. Place bags flat in the freezer to save space—this also makes thawing more efficient. 🧊
Stovetop Reheating
My preferred method is stovetop reheating because it preserves the creamy texture. Transfer soup to a heavy-bottomed pot and warm over medium-low heat for 10-15 minutes, stirring occasionally.
Add 1-2 tablespoons of broth or water if the soup thickens too much during reheating. The bacon bits should crisp up again when heated through.
For extra richness, stir in a splash of heavy cream (about 1-2 tablespoons) at the end to restore that velvety finish. Taste and adjust seasoning—Gruyère can make soup taste saltier after reheating. ✨
Microwave Method
For quick reheating, transfer 1-2 servings to a microwave-safe bowl. Cover loosely with a microwave-safe lid or damp paper towel. Heat on medium power (50%) for 2-3 minutes, stirring halfway.
Add a splash of broth if needed to loosen the soup. The bacon bits won't get as crispy this way, so save fresh ones for garnishing after reheating.
I avoid high power settings because they can make the soup grainy. The gentle heat helps maintain that silky Gruyère texture we worked so hard to create. 🔥
Garnish Refresh
Always finish with fresh garnishes after reheating. Top each bowl with crispy bacon bits, a sprinkle of fresh parsley, and a crack of black pepper. The contrast between the creamy soup and crunchy bacon is what makes this dish feel special every time.
I keep a small jar of reserved bacon bits in the fridge specifically for this purpose.
For an extra touch, drizzle with a little olive oil or add a pinch of smoked paprika to remind you of the original smoky depth. These finishing touches elevate reheated soup to feel just as good as the first serving. 💫
Nutrition facts
Frequently asked questions
Can I make this ham soup without bacon?
Swap the bacon for 8 oz pancetta or thick-cut ham cubes for a similar smoky flavor. If you prefer vegetarian, use smoked tofu cubes or mushrooms (like cremini or shiitake) for depth. Just reduce the cooking time for tofu to 5 minutes to avoid toughness. The key is maintaining that rich, savory base—any smoked or umami-rich alternative works beautifully.
How do I adjust this for a dairy-free version?
Replace the Gruyère cheese with 1 cup nutritional yeast for a cheesy flavor, plus 1/2 cup coconut milk instead of heavy cream. For extra richness, add 1 tbsp white miso paste when simmering the broth. The bacon can stay in—just garnish with crispy bits as usual. The soup will be lighter but still deeply flavorful.
Why did my ham soup turn out too salty?
Gruyère and smoked ham are naturally salty, so taste as you go! If it's too salty, stir in 2-3 tablespoons of broth or 1/2 cup milk/cream to dilute the flavor. For future batches, reduce the salt to 1 tsp and skip adding extra salt to the ham hock. The 1-hour simmer also concentrates flavors—simmer uncovered to let excess moisture evaporate.
Can I add potatoes to this recipe?
Yes, but add them later to avoid mushiness. Peel and cube 2 medium potatoes (about 1 cup) and add them with the ham hock during the 1-hour simmer. For creamier texture, use Yukon Golds—they hold their shape better. If you prefer softer potatoes, add them in the last 15 minutes of cooking. The key is timing to keep them tender but not falling apart.
What’s the secret to making this soup extra creamy?
For a velvety texture, whisk in 1/2 cup mashed potatoes or 1/4 cup cornstarch slurry (mix 1 tbsp cornstarch + 3 tbsp cold water) at the end. For a richer version, replace some broth with 1 cup chicken stock + 1/2 cup heavy cream. Simmer longer (up to 2 hours) to develop deeper flavors. The Gruyère melts beautifully—just ensure it’s freshly grated for the best results.
