Soup-e Shir ba Sabzijat (سوپ شیر با سبزیجات) — Persian Creamy Vegetable Milk Soup
A velvety Persian milk soup enriched with butter, onion, garlic, and a colorful mix of tender vegetables. Finished with nutmeg and fresh parsley, it’s comforting yet elegant for cold nights and gatherings.

Printable Recipe Card
Servings: 6 · Total: 55 min · Difficulty: easy
Ingredients (quick list)
- 45 g Unsalted butter (divided)
- 180 g Onion (finely diced)
- 12 g Garlic (minced (about 3 cloves))
- 35 g All-purpose flour (about 1/4 cup; spooned and leveled)
- 1200 ml Whole milk (room temperature if possible)
- 600 ml Water (hot)
- 150 g Carrot (small dice (about 1 cm))
- 200 g Potato (peeled, small dice (about 1 cm))
- 180 g Cauliflower florets (cut into bite-size pieces)
- 120 g Green peas (frozen, no need to thaw)
- 120 g Corn kernels (frozen or canned, drained)
- 10 g Fine sea salt (about 1 3/4 tsp, plus more to taste)
+ 3 more in the full ingredients section below.
Steps (summary)
- Melt 30 g of the butter in a heavy pot over medium heat. Add the diced onion and cook for 8–10 minutes, stirring often, until s…
- Sprinkle in the flour and stir constantly for 2 minutes to form a smooth paste (roux). It should look glossy and lightly foamy,…
- Whisk in the hot water, then add carrots, potatoes, and cauliflower. Increase heat to bring the soup just to a gentle simmer, t…
- Add peas and corn, then continue simmering for 8–10 minutes until the potatoes are tender and the vegetables are cooked through…
- Stir in salt, black pepper, and nutmeg. Add the remaining 15 g butter and stir until melted for a rounder mouthfeel. Simmer 2 m…
Cultural Background
Milk-based soups are commonly served in Iranian homes and at gatherings, especially in colder months when warming, gentle foods are preferred. This style is often associated with hospitality because it is soothing, easy to portion for guests, and can be enriched or simplified depending on the occasion.
Equipment
💡 Tips
- Use room-temperature milk and keep the soup at a gentle simmer; boiling milk-based soups can split or taste grainy.
- For extra silkiness, blend 2 cups of the soup until smooth, then stir it back in; keep some vegetables whole for texture.
- Cut vegetables to a similar 1 cm dice so they cook evenly and the soup feels refined.
- If the soup thickens too much while standing, loosen with 60–120 ml hot water or warm milk and reheat gently.
⚠️ Common Mistakes
❌ Boiling the soup hard after adding milk
💡 Why: High heat can cause milk proteins to tighten, leading to curdling or a grainy texture.
✅ Fix: Keep the soup at a gentle simmer; if it starts to boil, reduce heat immediately and stir to cool it slightly.
❌ Adding all the milk at once to the flour
💡 Why: Flour can clump quickly, creating stubborn lumps that are difficult to whisk out.
✅ Fix: Whisk in a small amount of milk first to make a smooth slurry, then add the rest gradually while whisking.
❌ Cutting vegetables unevenly
💡 Why: Large pieces stay firm while small pieces overcook, making the soup feel inconsistent.
✅ Fix: Dice vegetables to a consistent size (about 1 cm) and add firmer vegetables earlier than quick-cooking ones.
❌ Scorching the bottom
💡 Why: Milk and flour settle and can burn on the pot base, giving a bitter taste.
✅ Fix: Use a heavy-bottomed pot, stir frequently (especially corners), and keep heat low once the soup simmers.
🧊 How to Store
Cool to room temperature within 2 hours, then refrigerate in an airtight container for up to 3 days. Reheat over low heat, stirring often; do not boil. Freezing is not ideal because milk soups can separate, but it may be frozen up to 1 month and whisked well while reheating.
📅 Make Ahead
Chop vegetables and store refrigerated up to 24 hours. Cook the soup up to 1 day ahead; cool, refrigerate, and reheat gently over low heat, whisking. Add parsley at the end of reheating for the freshest flavor and color.
🍽️ Pairs Well With
- Warm flatbread or crusty bread
- A simple Shirazi-style cucumber and tomato salad
- Pickled vegetables or olives
- Extra chopped parsley and freshly ground black pepper
Regional Variations
- Tehran-style banquet serviceOften made slightly thicker and smoother, sometimes partially blended, and served in small bowls as a starter at formal gatherings with extra parsley on top.
- Northern Iran (Caspian influence)May include more herbs and sometimes a touch of dried mint or additional greens, keeping the soup fragrant and garden-forward while still milk-based.
Ingredients
- 45 gUnsalted butter (divided)
- 180 gOnion (finely diced)
- 12 gGarlic (minced (about 3 cloves))
- 35 gAll-purpose flour (about 1/4 cup; spooned and leveled)
- 1200 mlWhole milk (room temperature if possible)
- 600 mlWater (hot)
- 150 gCarrot (small dice (about 1 cm))
- 200 gPotato (peeled, small dice (about 1 cm))
- 180 gCauliflower florets (cut into bite-size pieces)
- 120 gGreen peas (frozen, no need to thaw)
- 120 gCorn kernels (frozen or canned, drained)
- 10 gFine sea salt (about 1 3/4 tsp, plus more to taste)
- 1 tspBlack pepper (freshly ground)
- 0.5 tspGround nutmeg (freshly grated if possible)
- 25 gFlat-leaf parsley (finely chopped, plus extra for serving)
🔄 Substitutions
- Whole milk→ 2% milk plus 60 ml heavy cream
- All-purpose flour→ Cornstarch (18 g) mixed with 60 ml cold milk
- Butter→ Olive oil (35 ml)
Instructions
- 1
Melt 30 g of the butter in a heavy pot over medium heat. Add the diced onion and cook for 8–10 minutes, stirring often, until soft and translucent but not browned. Add the minced garlic and cook 45–60 seconds until fragrant, keeping the heat moderate to avoid bitterness.
- 2
Sprinkle in the flour and stir constantly for 2 minutes to form a smooth paste (roux). It should look glossy and lightly foamy, not dark. Slowly pour in about 250 ml of the milk while whisking vigorously to prevent lumps, then whisk in the remaining milk in a steady stream.
- 3
Whisk in the hot water, then add carrots, potatoes, and cauliflower. Increase heat to bring the soup just to a gentle simmer, then reduce to low. Simmer partially covered for 15 minutes, stirring every 3–4 minutes and scraping the bottom so the milk does not scorch.
- 4
Add peas and corn, then continue simmering for 8–10 minutes until the potatoes are tender and the vegetables are cooked through. Keep the soup at a low simmer (small bubbles), not a boil, to reduce the risk of curdling and to keep the texture velvety.
- 5
Stir in salt, black pepper, and nutmeg. Add the remaining 15 g butter and stir until melted for a rounder mouthfeel. Simmer 2 minutes more, then turn off the heat. Stir in the chopped parsley and rest the soup 5 minutes so it thickens slightly before serving.
🪪 Recipe Passport
Cultural Background
Milk-based soups are commonly served in Iranian homes and at gatherings, especially in colder months when warming, gentle foods are preferred. This style is often associated with hospitality because it is soothing, easy to portion for guests, and can be enriched or simplified depending on the occasion.
Regional Variations
Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.
Nutrition per serving
Pairs well with
If you enjoyed this recipe, here are a few related Zaffaron recipes to try next.
Does your family make this differently?
Every family has their own version. Maybe your grandmother adds a secret ingredient, or your aunt has a completely different technique. Preserve your family's version — with their name on it, forever.
You Might Also Like

Khoresh Tareh Farangi (خورش تره فرنگی) — Persian Leek and Lamb Stew
Persian · Stews · 130 min

Authentic Kabab Koobideh (کباب کوبیده) — Persian Minced Lamb Skewers
Persian · Kebabs · 40 min

Borani Esfenaj (بورانی اسفناج) — Persian Spinach and Yogurt Dip with Saffron and Walnuts
Persian · Appetizers · 40 min

Dogroma (Dograma) — Turkmen Mutton and Bread Broth
Turkmen · Soups · 175 min

Romanian Tripe Soup (Ciorbă de burtă) — Creamy Sour Beef Tripe Soup
Romanian · Soups · 270 min

Sac Kavurma (Saç Kavurma) — Thin-Sliced Turkish Meat Sautéed with Onions
Turkish · Main Courses · 38 min

Turkish Shish Kebab (Şiş Kebap) — Charcoal-Grilled Marinated Lamb Skewers
Turkish · Kebabs · 37 min

Bosnian Popara (Попара) — Bread Porridge with Kaymak
Bosnian · Main Courses · 22 min
Reviews
Cooked this recipe?
Tap the stars to rate it — that's all it takes. A few words are welcome but optional.
No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.