Bean and Bacon Soup
This Better-Than-Canned Bean and Bacon Soup recipe transforms a classic comfort food into a heartier, healthier, and more flavorful one-pot meal. It’s designed to be simple to make but tastes incredibly rich. The key flavor secrets include building the soup’s base by sautéing vegetables in rendered bacon fat and using a simple “creamy hack”—blending a portion of the cannellini beans with half-and-half—to create a naturally thick, velvety texture without flour. Finished with fresh spinach and Parmesan cheese, this soup is perfect for a chilly evening and is guaranteed to be a new family favorite.
Who doesn’t love a good, hearty soup when the cold weather finally hits? There is just something so comforting about holding a warm bowl on a chilly evening.
Today, I’m sharing a recipe that is very dear to my household. My husband absolutely loves Bean and Bacon Soup – specifically, the kind you buy in the can at the grocery store. It’s an old favorite of his. But I knew we could do better.
I decided to create a homemade version that keeps all those familiar, comforting flavors but elevates them with fresh ingredients. This one-pot meal is heartier, healthier, and honestly, just so much better than anything from a can. It’s packed with nourishing vegetables, creamy white beans, and smoky bacon.

The Secrets to Flavorful Soup
This soup might look like it has a long ingredient list, but don’t let that fool you. Many of those items are just the spices that build incredible flavor. This is truly a simple, one-pot meal, but there are a few key steps that make it special.
The Foundation: Bacon Fat We start by cooking thick-sliced bacon right in the Dutch oven. Unlike when we cook bacon for breakfast, we want the fat to render out into the pan. We then remove the crispy bacon bits but leave that liquid gold behind. Sautéing our carrots, celery, and onions in that reserved bacon grease infuses a smoky, savory flavor into every bite of the soup. Don’t worry if the bottom of the pan looks dark—that’s where the flavor lives!
The Creamy “Hack” This soup doesn’t use a roux or heavy flour to thicken it. Instead, we use a simple trick. We take a portion of the cannellini beans and blend them together with a little half-and-half. When this smooth mixture is added back to the pot, it creates a naturally velvety, creamy texture while still leaving plenty of whole beans for hearty bites.
The Fresh Finish Right at the end, we stir in fresh baby spinach and Parmesan cheese. The heat of the soup wilts the spinach in minutes, adding bright color and nutrients, while the Parmesan adds that final salty, savory kick.
Hearty One-Pot Bean and Bacon Soup Recipe
- Prep time: 15 mins
- Cook time: 40 mins
- Yields: 4–6 servings
Ingredients
The Meat and Veggies
- 6 slices of thick-cut bacon, cut into bite-sized pieces
- 2 stalks celery, diced
- 3 carrots, cut into small bite-sized chunks
- ½ large yellow onion, chopped
- 3–4 cloves garlic, minced
- 6 oz bag fresh baby spinach
The Pantry & Spices
- 2 cans white cannellini beans, drained and rinsed
- 4 cups chicken broth
- 1 tsp coarse kosher salt
- 1 tsp dried parsley
- 1 tsp dried oregano
- 1 tsp dried thyme
- ¼ tsp black pepper
- ¼ tsp smoked paprika
- Pinch of crushed red pepper flakes (optional, adjust to taste)
The Creaminess
- ¾ cup half & half
- ½ cup grated Parmesan cheese
Instructions
- Crisp the Bacon: Heat a large Dutch oven over medium-high heat. Add the chopped bacon bits and cook until they are nicely crisp (about 5 minutes).
- Sauté in the Fat: Using a slotted spoon, remove the crispy bacon and set it aside on a paper towel-lined bowl. Do not drain the pot. Leave the rendered bacon fat inside. Add the chopped onion, carrots, and celery directly to the hot bacon fat. Cook for 5–7 minutes until the vegetables are soft and tender.
- Season and Bloom: Add the minced garlic, salt, parsley, oregano, thyme, black pepper, smoked paprika, and red pepper flakes. Give it a quick stir and let it cook for about 1 minute until fragrant.
- Deglaze the Pot: Pour in the 4 cups of chicken broth. Use your spoon to scrape up any flavorful browned bits that stuck to the bottom of the pan while the bacon was cooking.
- Create the Creamy Base: In a separate pitcher or bowl, combine about ¾ cup of the rinsed whole beans with the ¾ cup of half & half. Use an immersion blender (or a standard blender/food processor) to blend this into a smooth, creamy mixture. This will thicken the soup.
- Simmer: Add the remaining whole beans, the blended creamy bean mixture, and the cooked crispy bacon back into the Dutch oven. Stir well. Turn the heat down to medium-low and let it simmer for 15–20 minutes to meld the flavors.
- Finish with Freshness: Turn off the heat. Stir in the bag of baby spinach and the Parmesan cheese. Let the soup sit for about 5 minutes so the spinach wilts completely.
- Serve: Give it one final taste and serve warm.
Frequently Asked Questions
What kind of beans are best for this soup? I love using Cannellini beans (also called white kidney beans) because they are creamy and hold their shape well. If you can’t find them, Great Northern beans or Navy beans are excellent substitutes.
Do I really need to blend some of the beans? You don’t have to, but I highly recommend it! Blending a portion of the beans with the half-and-half is what gives this soup its wonderful, thick texture without having to add flour or cornstarch.
Can I make this soup dairy-free? Yes. You can substitute the half-and-half for a plain, unsweetened non-dairy milk (like oat or almond) or canned coconut milk for extra richness. You can omit the Parmesan cheese at the end or use a dairy-free alternative.
What should I serve with this soup? This soup is very hearty on its own, but it’s delicious served with some crusty bread for dipping. If you want a bigger meal, a classic grilled cheese sandwich on the side is perfect!
How do I store leftovers? This soup stores beautifully. Let it cool completely, then store it in an airtight container in the refrigerator for up to 4 days. It also freezes well for up to 3 months.
I hope your family loves this comforting meal as much as mine does. Remember to go out today and find somebody who needs a little bit of kindness and give them some of yours!
Bean and Bacon Soup
Ingredients
Meat:
- 6 slices of thick-cut bacon chopped into bite-sized pieces
Vegetables:
- 2 stalks celery diced
- 3 carrots diced
- ½ large yellow onion chopped
- 3-4 cloves garlic minced
- 6 oz bag fresh baby spinach
Pantry & Spices:
- 2 cans white cannellini beans drained and rinsed
- 4 cups chicken broth
- 1 tsp coarse kosher salt
- 1 tsp parsley
- 1 tsp oregano
- 1 tsp thyme
- ¼ tsp black pepper
- ¼ tsp smoked paprika
- Pinch of crushed red pepper flakes optional, add more for heat
Dairy:
- ¾ cup half & half
- ½ cup grated Parmesan cheese
Instructions
- Crisp the Bacon: Heat a large Dutch oven over medium-high heat. Add the chopped bacon bits and cook until they are nicely crisp (about 5 minutes).
- Sauté in the Fat: Using a slotted spoon, remove the crispy bacon and set it aside on a paper towel-lined bowl. Do not drain the pot. Leave the rendered bacon fat inside. Add the chopped onion, carrots, and celery directly to the hot bacon fat. Cook for 5–7 minutes until the vegetables are soft and tender.
- Season and Bloom: Add the minced garlic, salt, parsley, oregano, thyme, black pepper, smoked paprika, and red pepper flakes. Give it a quick stir and let it cook for about 1 minute until fragrant.
- Deglaze the Pot: Pour in the 4 cups of chicken broth. Use your spoon to scrape up any flavorful browned bits that stuck to the bottom of the pan while the bacon was cooking.
- Create the Creamy Base: In a separate pitcher or bowl, combine about ¾ cup of the rinsed whole beans with the ¾ cup of half & half. Use an immersion blender (or a standard blender/food processor) to blend this into a smooth, creamy mixture. This will thicken the soup.
- Simmer: Add the remaining whole beans, the blended creamy bean mixture, and the cooked crispy bacon back into the Dutch oven. Stir well. Turn the heat down to medium-low and let it simmer for 15–20 minutes to meld the flavors.
- Finish with Freshness: Turn off the heat. Stir in the bag of baby spinach and the Parmesan cheese. Let the soup sit for about 5 minutes so the spinach wilts completely.
- Serve: Give it one final taste and serve warm.
