On the tongue, the soup layers salty broth, buttery cream cheese, and a faint nuttiness from the potato, all brightened by the slightly peppery spinach. The half‑and‑half adds a luscious mouthfeel, and a sprinkle of parmesan introduces a salty, umami finish. Every spoonful balances heartiness with a light, herbaceous lift.
Serve it in wide bowls topped with crunchy homemade croutons and a dusting of parmesan for a satisfying contrast, or pair it with a crisp salad for a light dinner. It shines as a starter for a dinner party, a comforting Tuesday‑night solo bowl, and even as a make‑ahead lunch that reheats beautifully. The versatility makes it perfect for any occasion.
Don’t let the immersion blending intimidate you—just a quick whirl turns the soup into pure silk in minutes. The only tricky step is timing the spinach so it stays vivid, and even that is foolproof with a lid and a minute or two of steam. You’ve got all the tools you need for a silky soup without a culinary degree.
Ingredient notes & substitutions
low-sodium chicken broth
Provides a savory base without overwhelming salt, letting the spinach shine.
large russet potato
Adds body and natural creaminess, reducing the need for extra dairy.
cream cheese
Creates a smooth, buttery mouthfeel and enriches the flavor without curdling.
half and half
Lightens the soup while maintaining richness, perfect for a silky finish.
fresh baby spinach
Delivers bright color, iron, and a fresh vegetal taste that defines the soup.
Equipment you'll need
Ingredients
- 1 Tbsp olive oil
- 1 cup chopped yellow onion ((1 small))
- 2 tsp minced garlic ((2 cloves))
- 4 cups low-sodium chicken broth
- 1 large russet potato ((12 to 16 oz), peeled and cut into 1/2-inch cubes)
- Salt (and black pepper, to taste)
- 16 oz. fresh baby spinach
- 4 oz. cream cheese, (cut into 4 pieces and softened well*)
- 2/3 cup half and half,** (or more to taste)
- Homemade croutons, (for serving (optional, see notes for recipe***))
- Finely shredded parmesan cheese, (for serving (optional))
Instructions
- 1Step 1
Heat olive oil in a large pot over medium heat. Add onion and saute 3 minutes. Add garlic and saute 30 seconds.
- 2Step 2
Pour in chicken broth, add in potatoes, season with salt and pepper to taste. Bring to a boil over medium-high heat, then reduce heat to medium-low. Cover and simmer until potatoes are fully tender, about 15 minutes.
- 3Step 3
Add half the spinach, then cover with lid and let cook 1 minute to nearly wilt. Stir then add remaining half of the spinach, cover and cook 1 to 2 minutes to wilt.
- 4Step 4
Stir in cream cheese (it doesn't need to melt fully at this point).
- 5Step 5
Remove soup from heat and blend with an immersion blender until soup is completely smooth.
- 6Step 6
Return to medium-low heat, stir in half and half and warm through.
- 7Step 7
Serve soup warm with homemade croutons and parmesan cheese if desired. Optionally you can also decorate top with a drizzle of cream if desired.
Pro tips
Don’t over‑cook spinach
A minute of steam is enough; over‑cooking turns it mushy and dulls the color.
Soften cream cheese early
Cut into pieces and let sit at room temperature so it blends without clumps.
Season in stages
Add a pinch of salt with the broth, then taste after blending before final seasoning.
Use a wide pot
More surface area speeds up boiling and ensures even cooking of the potatoes.
Reserve broth for blending
Blend while the soup is still hot; cold soup can cause the blender to splatter.
Add half‑and‑half off heat
Stir in gently after removing from heat to prevent curdling.
Crisp croutons last minute
Toss them in just before serving so they stay crunchy.
Taste before serving
A final splash of lemon juice can brighten the flavors if needed.
Variations to try
Spicy Cajun Kick
Add 1 tsp Cajun seasoning and a dash of hot sauce when you stir in the half‑and‑half.
Dairy‑Free Version
Swap cream cheese for silken tofu and use coconut milk instead of half‑and‑half.
Italian‑Herb Twist
Stir in 1 tsp dried oregano and a handful of fresh basil leaves before blending.
Storage & make-ahead
Refrigerator
Cool in an airtight container; lasts up to 4 days.
Freezer
Freezes well in 1‑cup portions for up to 3 months; thaw in fridge overnight.
Best way to reheat
Reheat gently on the stovetop over low heat, adding a splash of broth to restore creaminess.
Make-ahead
Prepare the soup base up to blending day; add half‑and‑half and blend fresh before serving.

Ingredients
- 1 Tbsp olive oil
- 1 cup chopped yellow onion ((1 small))
- 2 tsp minced garlic ((2 cloves))
- 4 cups low-sodium chicken broth
- 1 large russet potato ((12 to 16 oz), peeled and cut into 1/2-inch cubes)
- Salt (and black pepper, to taste)
- 16 oz. fresh baby spinach
- 4 oz. cream cheese, (cut into 4 pieces and softened well*)
- 2/3 cup half and half,** (or more to taste)
- Homemade croutons, (for serving (optional, see notes for recipe***))
- Finely shredded parmesan cheese, (for serving (optional))
Instructions
- 1Heat olive oil in a large pot over medium heat. Add onion and saute 3 minutes. Add garlic and saute 30 seconds.
- 2Pour in chicken broth, add in potatoes, season with salt and pepper to taste. Bring to a boil over medium-high heat, then reduce heat to medium-low. Cover and simmer until potatoes are fully tender, about 15 minutes.
- 3Add half the spinach, then cover with lid and let cook 1 minute to nearly wilt. Stir then add remaining half of the spinach, cover and cook 1 to 2 minutes to wilt.
- 4Stir in cream cheese (it doesn't need to melt fully at this point).
- 5Remove soup from heat and blend with an immersion blender until soup is completely smooth.
- 6Return to medium-low heat, stir in half and half and warm through.
- 7Serve soup warm with homemade croutons and parmesan cheese if desired. Optionally you can also decorate top with a drizzle of cream if desired.