Karemi Soop-e Mahi (سوپ ماهی کرمی) — Persian Creamy Salmon Soup
A Persian-inspired creamy salmon soup with bay-leaf poached fish, a buttery onion-celery base, and a silky milk thickener. Comforting yet refined, it balances gentle herbs and clean seafood flavor in every spoonful.

Printable Recipe Card
Servings: 4 · Total: 55 min · Difficulty: medium
Ingredients (quick list)
- 500 g Salmon fillet, skinless (cut into 4 equal pieces)
- 750 ml Water (for poaching and broth)
- 2 leaf Bay leaves
- 2 tsp Salt (divided, plus more to taste)
- 45 g Unsalted butter (divided)
- 200 g Onion (finely diced)
- 120 g Celery (finely diced)
- 30 g All-purpose flour (about 1/4 cup)
- 600 ml Milk (whole milk preferred)
- 0.5 tsp Black pepper (freshly ground)
- 0.5 tsp Turmeric (optional, for gentle color and warmth)
- 1.5 tsp Dried dill (or 2 tbsp finely chopped fresh dill)
+ 2 more in the full ingredients section below.
Steps (summary)
- Poach the salmon: In a wide saucepan, combine the water, bay leaves, and 1 tsp of the salt. Bring to a gentle simmer over mediu…
- Lift salmon out with a slotted spatula onto a plate. Strain the poaching liquid through a fine sieve to remove bay leaves and a…
- Build the base: In a clean pot over medium heat, melt 30 g butter. Add onion and celery with the remaining 1 tsp salt. Cook 8–1…
- Make the roux: Sprinkle in the flour and stir continuously for 2 minutes to coat the vegetables and cook out raw flour taste. S…
- Add milk gently: Lower heat to medium-low. Pour in the milk gradually, stirring constantly, and bring the soup to a bare simmer…
- Finish and serve: Stir in the remaining 15 g butter until glossy. Add flaked salmon and warm 2–3 minutes on low so it stays ten…
Cultural Background
Creamy fish soups are associated with coastal home cooking, where fresh catch is often prepared with simple aromatics and gentle herbs. This Persian-inspired version uses bay leaf, dill, and a buttery milk base to highlight the fish rather than mask it, making it suitable for both everyday meals and guests.
Equipment
💡 Tips
- Keep the soup at a gentle simmer after adding milk; boiling can cause curdling and a grainy texture.
- For a more luxurious finish, whisk the soup vigorously for 20 seconds before adding salmon to increase silkiness without extra cream.
- If you prefer a smoother soup, blend only the base (before adding salmon) with an immersion blender, then fold the fish in at the end.
- Use center-cut salmon for even poaching and fewer dry edges.
- Taste after adding lemon; acidity can make salt seem stronger, so adjust seasoning last.
⚠️ Common Mistakes
❌ Boiling the soup after adding milk
💡 Why: High heat can curdle dairy and make the texture grainy, especially with acidity added later.
✅ Fix: Keep the soup at a bare simmer on medium-low; if it starts to bubble hard, remove from heat for 1 minute and stir, then return to low.
❌ Overcooking the salmon during poaching
💡 Why: Salmon dries out quickly and becomes chalky, which stands out in a creamy soup.
✅ Fix: Poach gently to 50–55°C/122–131°F and let carryover heat finish it; rewarm briefly at the end instead of simmering it in the soup.
❌ Adding broth too fast to the flour mixture
💡 Why: Rapid liquid addition can form lumps that are hard to dissolve later.
✅ Fix: Whisk while adding the first ladleful slowly, smoothing the paste before adding the rest of the broth in a steady stream.
❌ Seasoning only at the beginning
💡 Why: Salt perception changes after thickening and after adding lemon; early seasoning can lead to an overly salty soup.
✅ Fix: Hold back a little salt and adjust at the end, after butter, dill, and lemon are added.
🧊 How to Store
Cool quickly and refrigerate in an airtight container for up to 2 days. Reheat gently over low heat (do not boil), stirring often. Freezing is not recommended because the milk base can separate and the salmon can become dry.
📅 Make Ahead
You can poach the salmon and prepare the strained broth up to 1 day ahead; refrigerate separately. Make the soup base (without salmon and lemon) up to 1 day ahead, then reheat gently, add salmon to warm through, and finish with dill and lemon just before serving.
🍽️ Pairs Well With
- Warm flatbread or crusty bread
- Herb platter (fresh basil
- mint
- scallions
- radishes)
- Simple cucumber and tomato salad with lemon
Regional Variations
- Caspian Sea coastOften finished with more fresh herbs (especially dill and parsley) and served with simple rice or bread; the soup may be kept lighter by using less butter and a thinner milk base.
- Persian Gulf coastMay include warmer spice notes such as extra black pepper or a touch more turmeric, and is sometimes brightened with more citrus at the table to complement local seafood.
Ingredients
- 500 gSalmon fillet, skinless (cut into 4 equal pieces)
- 750 mlWater (for poaching and broth)
- 2 leafBay leaves
- 2 tspSalt (divided, plus more to taste)
- 45 gUnsalted butter (divided)
- 200 gOnion (finely diced)
- 120 gCelery (finely diced)
- 30 gAll-purpose flour (about 1/4 cup)
- 600 mlMilk (whole milk preferred)
- 0.5 tspBlack pepper (freshly ground)
- 0.5 tspTurmeric (optional, for gentle color and warmth)
- 1.5 tspDried dill (or 2 tbsp finely chopped fresh dill)
- 1 tbspLemon juice (to brighten at the end)
- 10 gFresh parsley (finely chopped, for serving)
🔄 Substitutions
- Salmon fillet→ Trout fillet or cod loin
- Whole milk→ 2% milk plus 1 tbsp extra butter (15 g total extra)
- All-purpose flour→ Cornstarch slurry (18 g cornstarch mixed with 45 ml cold milk)
Instructions
- 1
Poach the salmon: In a wide saucepan, combine the water, bay leaves, and 1 tsp of the salt. Bring to a gentle simmer over medium heat (small bubbles, not a rolling boil). Add salmon pieces, reduce heat to low, and poach 8–10 minutes until just opaque and 50–55°C/122–131°F inside.
- 2
Lift salmon out with a slotted spatula onto a plate. Strain the poaching liquid through a fine sieve to remove bay leaves and any albumin; keep the broth hot. When cool enough to handle, flake salmon into large, tender pieces (avoid shredding too fine) and cover loosely to prevent drying.
- 3
Build the base: In a clean pot over medium heat, melt 30 g butter. Add onion and celery with the remaining 1 tsp salt. Cook 8–10 minutes, stirring often, until softened and glossy but not browned. Stir in black pepper and turmeric (if using) for 30 seconds until fragrant.
- 4
Make the roux: Sprinkle in the flour and stir continuously for 2 minutes to coat the vegetables and cook out raw flour taste. Slowly ladle in about 250 ml of the hot reserved broth while whisking to prevent lumps, then add the remaining broth in a steady stream until smooth.
- 5
Add milk gently: Lower heat to medium-low. Pour in the milk gradually, stirring constantly, and bring the soup to a bare simmer (do not boil). Cook 10–12 minutes, stirring and scraping the bottom, until velvety and lightly thickened; the soup should coat the back of a spoon.
- 6
Finish and serve: Stir in the remaining 15 g butter until glossy. Add flaked salmon and warm 2–3 minutes on low so it stays tender. Turn off heat, mix in dried dill and lemon juice, then taste and adjust salt. Serve hot, topped with parsley, within 10 minutes for best texture.
🪪 Recipe Passport
Cultural Background
Creamy fish soups are associated with coastal home cooking, where fresh catch is often prepared with simple aromatics and gentle herbs. This Persian-inspired version uses bay leaf, dill, and a buttery milk base to highlight the fish rather than mask it, making it suitable for both everyday meals and guests.
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

Gheimeh Kadoo Halvai (قیمه کدو حلوایی) — Sweet Pumpkin & Legume Stew
Persian · Stews · 110 min

Jeweled Rice (مرصع پلو) — Festive Persian rice with saffron chicken and jeweled fruits
Persian · Rice Dishes · 135 min

Persian-Style Pizza-Chips (خوراک چیپس و پنیر) — Street-Food Chip Bake with Chicken and Mozzarella
Persian · Main Courses · 45 min

Spas (Սպաս) — Armenian Yogurt-and-Wheat Soup
Armenian · Soups · 70 min

Uzbek Shurpa (Шўрпа) — Lamb and Vegetable Soup
Uzbek · Soups · 160 min

Cig Kofte (Çiğ Köfte) — Isot-kissed bulgur kneaded and served in lettuce
Turkish · Appetizers · 25 min

Mıhlama (Mıhlama) — Black Sea Cornmeal and Cheese Skillet
Turkish · Main Courses · 25 min

Changua (Changua) — Colombian Milk-and-Egg Breakfast Soup
Colombian · Soups · 25 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.