This creamy Italian sausage and potato soup is my go-to the moment the weather turns cool. It’s hearty, rich, and packed with flavour from spicy Italian sausage, tender chunks of russet potato, and a generous handful of fresh spinach stirred in right at the end.
If you’ve ever had Zuppa Toscana at Olive Garden, this is that — but made at home, with a thicker, creamier broth and bolder spice. The combination of chicken broth, whole milk, and heavy cream creates a velvety base that clings to every bite without feeling heavy.
What I love most about this soup:
- 40 minutes start to finish — no roasting, no blending, one pot
- Spicy sausage does the heavy lifting — its rendered fat seasons the entire broth
- Russet potatoes break down slightly — naturally thickening the soup as they cook
- Fresh spinach wilts in residual heat — keeping its colour and a gentle bite
This is the soup I make when I want something that feels like a slow-simmered stew but lands on the table in under an hour. A dusting of parmesan on top and you’re set.
Creamy Italian Sausage and Potato Soup (Zuppa Toscana)
Ingredients
- 2 tablespoons olive oil
- ½ large onion diced
- 5 cloves garlic minced
- 2 pounds spicy Italian sausage casings removed and crumbled
- 6 large russet potatoes peeled and cut into 1-inch (2.5 cm) pieces
- 3 cups chicken broth
- 2 cups whole milk
- 1 ¾ cups heavy cream
- 2 teaspoons Italian seasoning
- 5 ounces fresh spinach roughly chopped
- ¼ cup Parmesan cheese freshly grated, plus extra for serving
- 1 pinch salt to taste
- 1 pinch black pepper to taste
Instructions
- In a large pot, heat oil, add onion and garlic, and cook until onions are translucent (about 5 minutes.)
- Remove the casings from the Italian sausage and crumble the meat into the pot. Cook over medium-high heat, breaking it into small pieces with a wooden spoon, until browned and no pink remains, about 6–8 minutes. Do not drain the rendered fat.
- While the sausage is browning, peel and cut the potatoes into 1-inch (2.5 cm) pieces.
- Add the diced potatoes to the pot and stir to coat them in the rendered sausage fat. Cook for 2–3 minutes, stirring occasionally, to lightly toast the edges.
- Pour in the chicken broth, milk, heavy cream, and Italian seasoning. Season with salt and black pepper to taste. Bring to a gentle simmer over medium heat (do not boil, or the dairy may curdle). Cook for 15–20 minutes, stirring occasionally, until the potatoes are fork-tender and the broth has thickened slightly.
- Mix in spinach, and remove from heat.
- Ladle into bowls and top with freshly grated Parmesan cheese. Serve immediately.
Notes
- Storage: Refrigerate in an airtight container for up to 3 days. Add a splash of broth or milk when reheating as potatoes may absorb liquid.
- Freezing: Freeze for up to 2 months. Dairy may separate; reheat gently and whisk well to recombine.
- Make-ahead: Prepare through browning the sausage and aromatics, then refrigerate. Add liquids and finish cooking when ready.
- Substitution: Use half-and-half instead of heavy cream for a lighter version, or coconut cream for dairy-free. Mild sausage can be used for less heat.
- Pro tip: Avoid over-stirring once potatoes are simmering to prevent a gluey texture.
Nutrition
What Makes This Creamy Italian Sausage and Potato Soup Special
There are dozens of Zuppa Toscana recipes out there, but this version stands apart for a few deliberate choices. First, the sausage is browned directly in the pot, and the rendered fat becomes the flavour base for everything that follows. That spicy, porky dripping coats the potatoes and infuses the broth with a depth you simply cannot get from leaner cooking methods.
Second, the liquid ratio matters. Three cups of chicken broth give the soup body, while two cups of whole milk and nearly two cups of heavy cream create a silky, restaurant-quality richness. The potatoes themselves do double duty — some hold their shape for texture, while others break down slightly at the edges and naturally thicken the broth without any flour or roux.
Finally, the spinach goes in off the heat. This is a small detail that makes a real difference. The residual heat wilts the leaves just enough to soften them while preserving their bright green colour and a gentle, fresh bite that cuts through the richness of the cream.
Equipment You’ll Need
- Large stockpot or Dutch oven (6-quart minimum) — this recipe produces a generous volume of soup. A pot that’s too small will make stirring difficult and increase the risk of the dairy scorching on the bottom.
- Sharp chef’s knife — you’re cutting through six large russet potatoes and crumbling sausage. A dull knife makes this tedious and increases your risk of slipping.
- Cutting board — a large board gives you room to dice the onion, mince the garlic, and cut the potatoes without crowding.
- Potato peeler — russet skins are thick and starchy. A Y-peeler or swivel peeler makes quick work of six large potatoes.
- Wooden spoon or silicone spatula — essential for breaking up the sausage as it browns and scraping up the fond from the bottom of the pot.
- Ladle — the thick, creamy broth pours messily from a pot. A deep ladle keeps serving clean and controlled.
Tips for Best Results
- Brown the sausage aggressively. Don’t just cook it through — let it develop deep golden-brown colour on the edges. This Maillard reaction adds a savoury, almost caramelised depth to the entire soup.
- Keep the simmer gentle. Once you add the milk and cream, never let the soup reach a rolling boil. High heat causes dairy to curdle and separate, leaving you with a grainy texture instead of a smooth, creamy broth.
- Cut potatoes into even 1-inch pieces. Uneven chunks mean some will be mushy while others are still raw in the centre. Consistency here is everything.
- Season at the end, not the beginning. The sausage, broth, and parmesan all contribute salt. Taste the finished soup before adding any extra — you may not need much.
- Add spinach off the heat. Stir it in after removing the pot from the burner. The residual heat is more than enough to wilt the leaves without overcooking them into a dark, mushy mass.
Substitutions and Variations
- Mild Italian sausage: If you’re sensitive to heat or cooking for kids, swap the spicy sausage for sweet or mild Italian sausage. The soup will still have plenty of flavour from the Italian seasoning and garlic.
- Turkey Italian sausage: A lighter option that works well here. You’ll lose some of the rendered fat, so add an extra tablespoon of olive oil when browning.
- Kale instead of spinach: Classic Zuppa Toscana uses kale. If you go this route, add it with the broth rather than at the end — kale needs more time to soften.
- Half-and-half instead of heavy cream: This cuts the richness and reduces calories significantly. The soup will be thinner but still creamy.
- Coconut cream for dairy-free: Use full-fat coconut cream in place of the heavy cream and an unsweetened plant milk in place of the whole milk. Skip the parmesan or use a nutritional yeast substitute.
- Yukon Gold potatoes: These hold their shape better than russets and have a naturally buttery flavour. They won’t thicken the broth as much, so expect a slightly thinner soup.
- Red pepper flakes: If your sausage isn’t spicy enough, add ¼ teaspoon of red pepper flakes when sautéing the garlic.
Storage and Reheating
- Refrigerator: Store leftover soup in an airtight container for up to 3 days. The potatoes will absorb liquid as the soup sits, so add a splash of chicken broth or milk when reheating to restore the consistency.
- Freezer: Freeze in portion-sized containers for up to 2 months. The dairy-based broth may separate slightly when thawed — whisk vigorously over medium-low heat to re-emulsify. Do not microwave from frozen; thaw overnight in the fridge first.
- Reheating: Warm gently in a saucepan over medium-low heat, stirring frequently. Avoid high heat, which can cause the cream to break. If it looks thin, let it simmer for a few extra minutes to reduce slightly.
What to Serve With This
- Crusty Italian bread or ciabatta: Perfect for dunking into the creamy broth. Warm it in the oven for a few minutes before serving.
- Simple green salad: A lightly dressed arugula or mixed green salad with a lemon vinaigrette cuts through the richness beautifully.
- Garlic breadsticks: If you want to lean into the Italian theme, homemade or store-bought garlic breadsticks are a crowd-pleaser alongside this soup.
- Roasted broccoli: The charred edges and slight bitterness of roasted broccoli complement the creamy, savoury soup perfectly.
- A crisp white wine: A Pinot Grigio or Vermentino pairs well — the acidity balances the heavy cream without competing with the sausage spice.
Frequently Asked Questions
Can I make this soup in a slow cooker?
Yes. Brown the sausage and sauté the onion and garlic on the stovetop first, then transfer everything to the slow cooker. Add the potatoes, broth, and Italian seasoning. Cook on low for 6-7 hours or high for 3-4 hours. Stir in the milk, cream, spinach, and parmesan during the last 15-20 minutes on low to prevent the dairy from curdling.
Why did my soup curdle?
Curdling happens when dairy is exposed to high heat or added to an acidic liquid too quickly. Keep the soup at a gentle simmer — never a rolling boil — after adding the milk and cream. If it does curdle, try blending a small portion with an immersion blender to smooth it out, though prevention is far easier than repair.
Can I use pre-cooked sausage links instead of raw?
You can, but you’ll miss out on the rendered fat that flavours the broth. If using pre-cooked sausage, slice it into rounds and add it after sautéing the onion and garlic. You may need an extra tablespoon of olive oil and a pinch more salt to compensate for the lost sausage drippings.
How do I thicken this soup if it’s too thin?
The easiest method is to scoop out a cup of potatoes, mash them with a fork, and stir them back into the soup. This thickens the broth naturally without adding flour or cornstarch. Alternatively, simmer uncovered for an extra 5-10 minutes to reduce the liquid.
Is this the same as Olive Garden’s Zuppa Toscana?
It’s very similar in spirit — spicy sausage, potatoes, cream, and greens. The key differences are that this version uses whole russet potatoes instead of sliced, includes milk alongside the cream for a slightly lighter body, and adds parmesan for a savoury finish. It’s a homestyle take that’s arguably richer than the restaurant version.
Can I add other vegetables to this soup?
Absolutely. Diced carrots or celery can be sautéed with the onion in step 1. Corn kernels or diced zucchini can be added with the broth. Avoid starchy additions like pasta or beans unless you reduce the potato quantity — otherwise the soup becomes too thick and heavy.
The Story Behind Zuppa Toscana
Zuppa Toscana translates to “Tuscan soup,” and its roots are in the simple, peasant cooking of Tuscany, Italy. Traditional versions are built on whatever vegetables and bread were on hand — white beans, cavolo nero (Tuscan kale), and stale bread soaked in broth. The American version, popularised by Olive Garden in the 1990s, swaps in potatoes and cream for a richer, more indulgent bowl. It’s a beautiful example of how immigrant food traditions evolve — keeping the soul of the original while adapting to new ingredients and tastes. This recipe sits firmly in that American-Italian tradition: comfort food that nods to Tuscany while being thoroughly designed for a cold weeknight at home.
If you make this creamy Italian sausage and potato soup, I’d love to hear how it turned out — drop a star rating and leave a comment below to let me know what you thought!

















































