Soup-e Shir-e Za'farani (سوپ شیر زعفرانی با برنج)
Soup-e Shir is a velvety Persian milk-and-rice soup scented with saffron and fresh dill. Gently simmered with onion, turmeric, and butter, it’s soothing, lightly sweet-savory, and perfect for cold days or a calming starter.

Printable Recipe Card
Servings: 4 · Total: 80 min · Difficulty: easy
Ingredients (quick list)
- 120 g Basmati rice (rinsed until water runs mostly clear)
- 720 ml Water (for first simmer (about 3 cups))
- 150 g Onion (finely diced)
- 30 g Unsalted butter (divided (20 g for sauté, 10 g to finish))
- 1.5 tsp Turmeric (ground)
- 1.25 tsp Fine sea salt (plus more to taste)
- 0.5 tsp Black pepper (freshly ground)
- 0.2 g Saffron threads (ground and bloomed in hot water)
- 60 ml Hot water (just off the boil, for blooming saffron (1/4 cup))
- 1000 ml Whole milk (at room temperature to reduce curdling risk)
- 12 g Granulated sugar (about 1 tbsp; for a classic mild sweetness)
- 20 g Fresh dill (finely chopped, tender fronds only)
Steps (summary)
- Rinse the basmati rice in several changes of cool water until it runs mostly clear. Drain well, then add rice and 720 ml water…
- While the rice simmers, bloom the saffron: grind 0.2 g saffron threads to a powder and mix with 60 ml hot water (just off the b…
- In a second heavy-bottomed pot (or the same pot after rice is soft), melt 20 g butter over medium heat. Add the diced onion and…
- Lower the heat to medium-low. Add the milk gradually—about 250 ml at a time—stirring constantly after each addition to prevent…
- Season the soup with salt, black pepper, and sugar, stirring until fully dissolved (about 1 minute). Pour in the bloomed saffro…
Cultural Background
Soup-e Shir is a classic Iranian comfort soup often served in winter, valued for its gentle nourishment and soothing warmth. The pairing of saffron’s regal aroma with simple pantry ingredients reflects Persian cooking’s talent for turning modest staples into elegant, restorative dishes.
Equipment
💡 Tips
- For an extra-smooth, restaurant-style texture, blend 1 cup (240 ml) of the soup and stir it back in, or use an immersion blender for 10–15 seconds—avoid over-blending so it doesn’t become gluey.
- If you prefer a thinner soup, whisk in 60–120 ml warm milk at the end; if thicker, simmer 3–5 minutes longer while stirring continuously.
- Keep the heat gentle once milk is added; a slow simmer preserves saffron aroma and prevents a grainy mouthfeel.
- Chop dill finely and add off-heat for the freshest herbal notes and bright green flecks.
⚠️ Common Mistakes
❌ Boiling the soup after adding milk
💡 Why: High heat can cause milk proteins to curdle and create a grainy texture.
✅ Fix: Keep the pot at a gentle simmer on medium-low; if it starts to bubble vigorously, remove from heat for 1 minute, stir, then return on lower heat.
❌ Not stirring frequently during the milk phase
💡 Why: Rice and milk settle and scorch easily, leading to burnt flavor and brown specks.
✅ Fix: Stir every 1–2 minutes, scraping the bottom and corners; use a heavy-bottomed pot to distribute heat evenly.
❌ Adding dill too early
💡 Why: Long cooking dulls dill’s fresh aroma and can make it taste bitter.
✅ Fix: Stir dill in off-heat (or in the last 1–2 minutes) and let the soup rest 5 minutes for a bright, herbal finish.
❌ Under-cooking the rice before adding milk
💡 Why: Firm rice won’t release enough starch, so the soup stays thin and less cohesive.
✅ Fix: Simmer rice in water until very soft and easily crushed between fingers before combining with the onion base and milk.
🧊 How to Store
Cool to room temperature within 2 hours, then refrigerate in an airtight container for up to 3 days. Reheat gently over low heat, stirring often; add 60–120 ml milk to loosen, as rice thickens the soup as it sits. Do not boil during reheating.
📅 Make Ahead
Cook the rice in water up to 24 hours ahead and refrigerate. When ready to serve, sauté onion and turmeric, add the pre-cooked rice, then gradually whisk in room-temperature milk and finish with saffron and dill. This reduces day-of cooking time and improves consistency.
🍽️ Pairs Well With
- Sangak or barbari bread
- Fresh herbs (sabzi khordan)
- A small plate of torshi (Persian pickles)
- Lemon wedges (optional
- for a bright contrast)
Regional Variations
- TehranOften kept pale and very smooth, with mild sweetness and a stronger saffron note; dill is added lightly for aroma rather than color.
- Azerbaijan (Iranian Azerbaijan)Commonly made thicker and more peppery, sometimes with extra onion and a heavier hand of dill for a greener, more herbal profile.
Ingredients
- 120 gBasmati rice (rinsed until water runs mostly clear)
- 720 mlWater (for first simmer (about 3 cups))
- 150 gOnion (finely diced)
- 30 gUnsalted butter (divided (20 g for sauté, 10 g to finish))
- 1.5 tspTurmeric (ground)
- 1.25 tspFine sea salt (plus more to taste)
- 0.5 tspBlack pepper (freshly ground)
- 0.2 gSaffron threads (ground and bloomed in hot water)
- 60 mlHot water (just off the boil, for blooming saffron (1/4 cup))
- 1000 mlWhole milk (at room temperature to reduce curdling risk)
- 12 gGranulated sugar (about 1 tbsp; for a classic mild sweetness)
- 20 gFresh dill (finely chopped, tender fronds only)
🔄 Substitutions
- Whole milk→ 2% milk + 30 g extra butter
- Fresh dill→ Frozen dill (10 g)
- Basmati rice→ Persian rice (chelo rice) or jasmine rice (same weight)
Instructions
- 1
Rinse the basmati rice in several changes of cool water until it runs mostly clear. Drain well, then add rice and 720 ml water to a medium pot. Bring to a boil over medium-high heat (about 6–8 minutes), skim any foam, then reduce to a gentle simmer and cook 18–22 minutes, stirring occasionally, until grains are very soft and the water is mostly absorbed.
- 2
While the rice simmers, bloom the saffron: grind 0.2 g saffron threads to a powder and mix with 60 ml hot water (just off the boil). Cover and steep 10 minutes for maximum color and aroma. Keep the infusion warm (not boiling) so it blends smoothly into the soup later without shocking the milk.
- 3
In a second heavy-bottomed pot (or the same pot after rice is soft), melt 20 g butter over medium heat. Add the diced onion and sauté 8–10 minutes until translucent and lightly golden at the edges. Stir in turmeric for 30 seconds to toast the spice, then add the cooked rice and stir 1 minute to coat the grains and build a rich, fragrant base.
- 4
Lower the heat to medium-low. Add the milk gradually—about 250 ml at a time—stirring constantly after each addition to prevent scorching and to keep the mixture silky. Once all milk is added, simmer gently 18–22 minutes, stirring every 1–2 minutes, until the soup thickens to a velvety, spoon-coating consistency; keep it below a boil to avoid curdling.
- 5
Season the soup with salt, black pepper, and sugar, stirring until fully dissolved (about 1 minute). Pour in the bloomed saffron (including the liquid) and simmer 3–4 minutes on low to marry flavors. Turn off heat, stir in chopped fresh dill and the remaining 10 g butter, then rest the soup 5 minutes so the dill perfumes the pot without turning bitter.
🪪 Recipe Passport
Cultural Background
Soup-e Shir is a classic Iranian comfort soup often served in winter, valued for its gentle nourishment and soothing warmth. The pairing of saffron’s regal aroma with simple pantry ingredients reflects Persian cooking’s talent for turning modest staples into elegant, restorative dishes.
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

Salgam Juice (Şalgam) — Spicy, tangy fermented black-carrot drink
Turkish · Drinks · 25 min

Bazlama (بازلاما) — Puffy Turkish Village Flatbread Cooked on a Saj
Turkish · Breads · 38 min

Romanian Polenta (Mămăligă) — Firm Cornmeal Porridge
Romanian · Side Dishes · 30 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.