This spinach soup recipe turns a humble bag of greens into a warm, velvety bowl you will want on repeat all winter. It comes together in under thirty minutes using basic pantry staples and a big pile of fresh spinach. The result is smooth, savory, and rich without feeling heavy at all. A pinch of nutmeg and a shower of parmesan at the end make it taste like something you would order at a cozy little bistro.
Large pot or Dutch oven Heavy bottomed pot like Le Creuset distributes heat evenly
Cutting board
Chef's knife
Wooden spoon
Measuring cups and spoons
Immersion blender Breville recommended for smooth texture without transferring hot liquid
Countertop blender Optional - use if no immersion blender, work in batches and vent lid
Ladle For serving
Microplane grater Optional - for grating fresh nutmeg and parmesan
Ingredients
2tablespoonsunsalted butter
1medium yellow onionabout 1 cup or 150g, diced
3clovesgarlicminced
1medium russet potatoabout 8oz or 225g, peeled and diced
4cupsvegetable broth or chicken broth960ml
10ouncesfresh baby spinach283g, roughly chopped
1/2cupheavy cream120ml
1/4teaspoonground nutmegfreshly grated if possible
salt and black pepperto taste
1/4cupgrated parmesan cheese25g, plus more for serving
fresh chivesfor garnish
extra creamfor garnish, optional swirl
Instructions
Melt butter in a large pot or Dutch oven over medium heat. Add diced onion and cook until soft and translucent, about 4 to 5 minutes.
Stir in minced garlic and cook for 30 to 60 seconds until fragrant. Add peeled and diced potato along with the broth. Bring to a gentle boil, reduce heat, and simmer covered for 12 to 15 minutes until potatoes are fork tender.
Add roughly chopped fresh spinach in batches, stirring after each addition until wilted. Cook for 2 to 3 minutes until all spinach is bright green and fully wilted. Remove from heat.
Using an immersion blender, blend soup directly in the pot until completely smooth and creamy. If using a countertop blender, work in small batches with the lid vented to release steam.
Stir in heavy cream, nutmeg, and grated parmesan until melted and combined. Season with salt and pepper to taste. Warm gently over low heat for 1 to 2 minutes without boiling.
Ladle hot soup into bowls. Garnish with a swirl of extra cream, a sprinkle of parmesan, and fresh chives if desired. Serve immediately while warm.
Notes
Do not skip the potato – it gives the soup body without needing a lot of extra cream.
Use fresh spinach rather than frozen for the brightest color and flavor, though frozen works in a pinch if thawed and drained well.
Blend thoroughly for a silky texture – a few extra seconds makes the difference between good and restaurant quality smooth.
Taste before serving – spinach soup often needs more salt than you would expect since the greens dilute the seasoning.
Warm the soup gently after adding the cream – boiling at this stage can cause the cream to separate.
Storage: Refrigerate in an airtight container for up to 4 days, or freeze for up to 3 months.
To make it vegan: Swap butter for olive oil, use vegetable broth, replace heavy cream with full fat coconut milk, and omit parmesan or use a plant-based alternative.
Swap the spinach for kale, Swiss chard, or a mix of leafy greens for a variation.
Add a can of drained white beans before blending for extra protein and fiber.
This soup tastes even better the next day once the flavors have melded.