Tuscan White Bean Stew — Easy Weeknight Soup
Steam rises from the pot and the rosemary smells like an Italian kitchen — this is the kind of bowl that warms you from the inside out. I developed this Tuscan White Bean Soup after testing variations eight times to balance creaminess, herb lift, and just enough bite from greens. The result is a hearty, spoonable soup with tender cannellini beans, sautéed aromatics, and a splash of lemon to brighten each mouthful. This version is forgiving for home cooks, uses pantry-friendly ingredients, and scales easily for leftovers. Read on for precise steps, timing, and make-ahead tips so you get reliably great results every time — and see a creamy twist in our creamy white bean and bacon version if you’d like to add smoky richness.
Why This Recipe Works
- Beans cooked or canned are gently broken down to thicken the broth, creating a creamy texture without cream.
- Sweating onions and garlic first releases sugars that deepen flavor without browning.
- A small amount of reserved mashed beans emulsifies the soup for silkiness.
- Fresh rosemary and lemon add bright top notes that prevent the dish from tasting heavy.
- Kale (or spinach) is added late so it retains texture and color, not a mushy gray-green.
Ingredients Breakdown
- Cannellini beans: 900 g (2 x 15-oz/425 g cans), drained and rinsed, or 300 g (1 1/2 cups) dried beans cooked until tender. Canned saves time; dried offer better texture if you have the time.
- Olive oil: 60 ml (4 tbsp). Use extra-virgin for finishing flavor; a neutral oil will cook the aromatics without added fruitiness.
- Onion: 1 medium (about 150 g), finely diced. Sweating the onion builds the soup’s base.
- Garlic: 3 cloves, minced. Add at the end of the sauté to avoid bitterness.
- Carrot: 1 medium (about 80 g), diced. Adds subtle sweetness and body.
- Celery: 1 stalk (about 50 g), diced. Traditional mirepoix flavor.
- Vegetable or chicken stock: 1.2 L (5 cups). Use low-sodium stock to control salt.
- Fresh rosemary: 1 sprig, finely chopped (or 1 tsp dried). Rosemary is very flavorful — remove the stem.
- Bay leaf: 1 whole.
- Kale or spinach: 100 g (about 3 cups chopped) kale or 120 g (4 cups) spinach. Kale holds up better; spinach wilts faster.
- Lemon: 1, zested and 1 tbsp juice. Brightens the soup.
- Salt and pepper: Diamond Crystal kosher salt recommended; if using Morton’s, use about half the quantity listed.
- Optional: Parmesan rind (adds umami when simmered) or 60–90 g (1/4–1/3 cup) grated Parmesan for serving.
Substitutions with impact warnings:
- Swap cannellini for great northern beans (fine) or navy beans (slightly firmer). Pinto or kidney beans change the flavor and texture.
- Use gluten-free stock if needed; no other gluten sources here.
- Omit Parmesan for dairy-free — result will be less savory but still satisfying.
Essential Equipment
- Large heavy-bottomed pot or Dutch oven (4–6 L). A wide pot helps evaporation and flavor concentration.
- Chef’s knife and cutting board.
- Measuring spoons and cups plus a kitchen scale for accuracy.
- Immersion blender (optional): blends part of the soup directly in the pot for creaminess. If you don’t have one, transfer a cupful to a blender and return.
- Wooden spoon or spatula.
- Ladle and bowls for serving.
If you don’t have a Dutch oven, use a heavy pot with a tight-fitting lid. If you lack an immersion blender, a potato masher works to break some beans for body.
Prep Time: 15 minutes • Cook Time: 35 minutes • Inactive Time: None • Total Time: 50 minutes • Servings: 6
Step 1: Prepare the Beans and Vegetables
Drain and rinse 900 g (2 x 15-oz/425 g) canned cannellini beans or use 300 g (1 1/2 cups) dried beans cooked until very tender. Peel and finely dice 1 medium onion (150 g), 1 medium carrot (80 g), and 1 stalk celery (50 g). Trim and chop 100 g kale into bite-sized pieces. This prep should take about 10–15 minutes.
Step 2: Sweat the Aromatics
Heat 60 ml (4 tbsp) olive oil in a 4–6 L pot over medium heat. Add the onion, carrot, and celery and sauté until the onions are translucent and fragrant, about 6–8 minutes, stirring every 30 seconds. Add 3 minced garlic cloves and cook 30–45 seconds until fragrant — do not brown.
Step 3: Build the Broth
Pour in 1.2 L (5 cups) low-sodium vegetable or chicken stock, add 1 sprig chopped rosemary and 1 bay leaf, and bring to a simmer over medium-high heat, about 5 minutes. Add the drained beans and a Parmesan rind if using. Simmer gently for 12–15 minutes so flavors meld and beans soften further.
Step 4: Add Body and Finish
Remove the bay leaf and Parmesan rind. Use an immersion blender to purée about one-third of the soup in the pot to thicken it, or scoop 300 g (about 2 cups) of beans into a blender and purée, then return. Do not over-blend — leave whole beans for texture. Stir in 100 g chopped kale and simmer 3–4 minutes until wilted but still bright.
Step 5: Brighten and Season
Turn off the heat and stir in 1 tbsp lemon juice and the zest of 1 lemon. Season with 1–11/2 tsp Diamond Crystal kosher salt (about 1 tsp if using Morton’s) and 1/2 tsp freshly ground black pepper, adjusting to taste. Serve with grated Parmesan and a drizzle of olive oil. Total active cooking time for these steps is about 30–35 minutes.
Expert Tips & Pro Techniques
- Common mistake: over-salting early. Stocks vary in sodium. Add most salt at the end and taste. This avoids an overly salty soup after reduction.
- Make-ahead: Soup tastes better a day later. Cool, refrigerate in an airtight container up to 4 days, then reheat. See storage for freezing instructions.
- Pro technique adapted for home cooks: Purée a portion of the beans and return them to the pot to thicken naturally instead of adding cream.
- Texture control: If using dried beans, undercook by 5 minutes if you plan to reheat; they’ll finish softening without splitting.
- Flavor layering: Add a Parmesan rind during simmering and remove before serving for a deep, savory backbone.
- If using an immersion blender, pulse briefly to keep some whole beans for bite.
Storage & Reheating
- Refrigerator: Cool to room temperature within 2 hours and store in an airtight container for up to 4 days.
- Freezer: Freeze in airtight, freezer-safe containers for up to 3 months. Leave 2.5 cm (1 inch) headspace for expansion. Thaw overnight in the refrigerator.
- Reheating: Reheat gently on the stove over medium-low until steaming, about 8–12 minutes. If thickened too much after chilling, add 60–120 ml (1/4–1/2 cup) stock or water and stir. Avoid high-heat boiling to preserve texture.
Variations & Substitutions
- Vegetarian/vegan: Use vegetable stock and omit Parmesan. Add 1 tbsp nutritional yeast at the end for savory depth; everything else stays the same.
- Creamy version: Stir in 120 ml (1/2 cup) heavy cream or full-fat coconut milk at the end for a richer mouthfeel; reduce lemon by half.
- Smoky, meaty twist: Add 100 g diced pancetta or bacon sautéed in step 2, then drain most fat before adding stock. This adds about 3–4 minutes cooking time.
- Gluten-free: Naturally gluten-free if you use gluten-free stock; no other changes needed.
- Hearty winter bowl: Add 200 g diced potatoes (peeled) with the stock and simmer 15–18 minutes until tender; may require an extra 5 minutes for mash consistency.
Serving Suggestions & Pairings
- Serve with crusty bread and butter or a drizzle of good olive oil to sop up the broth.
- Pair with a crisp green salad and a light vinaigrette for balance.
- For a protein boost, top each bowl with a soft-poached egg or sliced grilled chicken.
- For wine pairing, choose a medium-bodied red like Chianti or a dry white like Vermentino.
Find a tomato-and-meatball riff in our rustic parmesan meatball white bean tomato soup, or try a smoky herb version at smoky white bean herb soup for more ideas.
Nutrition Information
Per serving (serving size: about 1-1/4 cups; recipe makes 6 servings)
- Calories: 280 kcal
- Total Fat: 9 g
- Saturated Fat: 2.5 g
- Cholesterol: 10 mg (if using Parmesan; 0 mg if omitted)
- Sodium: 560 mg (varies with stock and added salt)
- Total Carbohydrates: 34 g
- Dietary Fiber: 9 g
- Sugars: 4 g
- Protein: 12 g
Nutrition values are estimates. Actual values may vary based on specific ingredients and preparation methods.
Frequently Asked Questions
Q: Why did my soup turn out too watery?
A: The easiest fix is to simmer uncovered for 5–10 more minutes to concentrate the broth, or mash a cup of beans and stir back in to thicken.
Q: Can I make this without beans or with another legume?
A: You can use lentils, but cooking times and texture will change. Brown lentils keep their shape; red lentils will break down and make a thicker stew.
Q: Can I double this recipe?
A: Yes — double all ingredients and use a pot at least 8–10 L to avoid crowding. Cooking time may increase by 5–10 minutes to return to a simmer.
Q: Can I prepare this the night before?
A: Absolutely. Flavors deepen overnight. Store in the fridge and reheat gently on the stove the next day.
Q: How long does this keep in the fridge?
A: Kept in an airtight container, this soup lasts up to 4 days refrigerated. Freeze for longer storage (up to 3 months).
Q: Can I make this without garlic or onion?
A: You can, but the soup will lack depth. Use leeks or shallots if onion is an issue, or roast garlic for a milder, sweeter flavor.
Q: My beans are grainy or mealy — what happened?
A: That usually results from undercooked dried beans or old beans. Use fresher beans and test a few for tenderness before finishing the soup.
Conclusion
This Tuscan-style soup is a weeknight winner — easy to assemble, forgiving, and full of comforting flavor. For another take that emphasizes a silky, herb-forward broth, see the Best Tuscan White Bean Soup – Eat With Clarity for inspiration and ingredient ideas. If you want a heartier, rustic version with extra vegetables, check the Hearty Tuscan White Bean Soup – Kalejunkie for useful variants. Enjoy a bowl with crusty bread and a squeeze of lemon.
Print
Tuscan White Bean Stew
- Total Time: 50 minutes
- Yield: 6 servings 1x
- Diet: Vegetarian
Description
A hearty, spoonable soup with tender cannellini beans, sautéed aromatics, and a splash of lemon that warms you from the inside out.
Ingredients
- 900 g canned cannellini beans (2 x 15-oz cans), drained and rinsed or 300 g dried beans cooked until tender
- 60 ml (4 tbsp) olive oil
- 1 medium onion (about 150 g), finely diced
- 3 cloves garlic, minced
- 1 medium carrot (about 80 g), diced
- 1 stalk celery (about 50 g), diced
- 1.2 L (5 cups) low-sodium vegetable or chicken stock
- 1 sprig fresh rosemary, finely chopped (or 1 tsp dried)
- 1 whole bay leaf
- 100 g (about 3 cups) chopped kale or 120 g (4 cups) spinach
- 1 lemon, zested and 1 tbsp juice
- Salt and pepper to taste
- Optional: Parmesan rind or 60–90 g (1/4–1/3 cup) grated Parmesan for serving
Instructions
- Prepare the beans and vegetables: Drain and rinse the cannellini beans or use dried beans cooked until tender. Peel and finely dice the onion, carrot, and celery. Trim and chop the kale into bite-sized pieces.
- Heat olive oil in a large pot over medium heat. Add the onion, carrot, and celery and sauté until translucent and fragrant, about 6–8 minutes. Add minced garlic and cook for another 30–45 seconds.
- Pour in the vegetable or chicken stock, add chopped rosemary and bay leaf, and bring to a simmer. Add the drained beans and optional Parmesan rind. Simmer for 12–15 minutes.
- Remove the bay leaf and Parmesan rind. Use an immersion blender to purée about one-third of the soup for thickness, or transfer some beans to a blender and return them to the pot. Stir in chopped kale and simmer for 3–4 minutes.
- Turn off the heat and stir in lemon juice and zest. Season with salt and pepper to taste. Serve with grated Parmesan and olive oil.
Notes
This soup tastes even better the next day. Store in the refrigerator for up to 4 days or freeze for up to 3 months.
- Prep Time: 15 minutes
- Cook Time: 35 minutes
- Category: Soups
- Method: Stovetop
- Cuisine: Italian
Nutrition
- Serving Size: 1 serving
- Calories: 280
- Sugar: 4g
- Sodium: 560mg
- Fat: 9g
- Saturated Fat: 2.5g
- Unsaturated Fat: 6g
- Trans Fat: 0g
- Carbohydrates: 34g
- Fiber: 9g
- Protein: 12g
- Cholesterol: 10mg
