Skip to content
Zaffaron

Esfanaj Polo (اسفناج پلو) — Persian Spinach Rice with Mini Meatballs

Esfanaj Polo is a refined Persian rice pilaf where sautéed spinach is layered with fragrant basmati and tiny meatballs. Often served with crisp tahdig, it’s prized for its bright green color and comforting, herbaceous aroma.

By Zaffaron Kitchen· Published April 6, 2026 Verified Recipe
Dairy-Free Nut-Free Halal
Contains: gluten
105 min total Prep 35m · Cook 70m 6 servings 640 cal
↓ Jump to Recipe
Esfanaj Polo — Persian Spinach Rice with Mini Meatballs - authentic persian recipe

Printable Recipe Card

Servings: 6 · Total: 105 min · Difficulty: medium

Ingredients (quick list)

  • 450 g Basmati rice, uncooked (Rinsed until water runs mostly clear)
  • 18 g Fine salt (For salting soaking and boiling water)
  • 800 g Fresh spinach (Washed well, thick stems removed, roughly chopped)
  • 60 ml Vegetable oil (Divided)
  • 250 g Yellow onion (Finely diced)
  • 400 g Ground lamb or beef (85–90% lean) (Lamb is most traditional; beef works well)
  • 2 tsp Ground turmeric (Divided)
  • 1 tsp Black pepper, finely ground (Divided)
  • 45 ml Verjuice (For brightness; add in two additions)
  • 80 g Lavash bread (Torn into pieces to cover the pot base)
  • 2500 ml Water (For boiling the rice)

Steps (summary)

  1. Rinse the basmati rice in several changes of cold water until the water runs mostly clear. Soak it in enough cold water to cove…
  2. Make the meatball mixture by combining the ground meat, grated-and-squeezed onion, 1 tsp turmeric, 1/2 tsp black pepper, and 6…
  3. Roll the mixture into mini meatballs about 18–20 g each (roughly walnut-sized) and place them on a tray. Keep them cool while y…
  4. Heat 30 ml vegetable oil in a wide skillet over medium heat and sauté the 250 g diced onion for 8–10 minutes until golden at th…
  5. Add the chopped spinach in batches, stirring until each batch wilts before adding the next. Cook for 10–12 minutes total until…
  6. In the same skillet (or a second pan), heat the remaining 30 ml vegetable oil over medium-high heat. Add the mini meatballs in…

+ 5 more steps in the full instructions section below.

Cultural Background

Rice dishes like Esfanaj Polo highlight the Persian mastery of layered pilaf and tahdig, pairing seasonal greens with meat for balance. It’s a home-style classic that feels elegant on the table thanks to its vivid color and fragrant steam.

savorytangywarm-spicedfluffy long-grain ricetender meatballscrisp bread tahdigearthy spinachtoasted turmericcaramelized onion🌶 mild

Equipment

Large pot with lidFine-mesh colanderLarge skilletMixing bowlBox graterKitchen towelWooden spoon

💡 Tips

  • Squeeze grated onion for the meatballs until it feels almost dry; excess juice makes the mixture loose and prone to cracking.
  • Cook the spinach until the pan looks nearly dry; watery spinach can turn the rice mushy and dull the green color.
  • For a crisper tahdig, keep the final 10 minutes on low with the lid towel-dry and avoid lifting the lid during steaming.

⚠️ Common Mistakes

  • ❌ Boiling the rice until fully tender before steaming

    ✅ Fix: Drain when the grain is soft outside but firm in the center; steaming finishes cooking without breaking the grains.

  • ❌ Leaving too much liquid in the spinach mixture

    ✅ Fix: Sauté longer until the pan is nearly dry, then add verjuice at the end so the rice stays fluffy.

  • ❌ Tahdig sticking and tearing

    ✅ Fix: Use enough oil, keep heat low after the initial steam, and rest 10 minutes off-heat before unmolding.

🧊 How to Store

Cool leftovers within 2 hours, then refrigerate in an airtight container for up to 3 days. Reheat covered with 30 ml water in a pot over low heat for 12–15 minutes, or microwave covered for 3–4 minutes; re-crisp tahdig separately in a dry skillet for 2–3 minutes.

📅 Make Ahead

Wash and chop spinach up to 1 day ahead and refrigerate well-dried. Form the mini meatballs up to 24 hours ahead and keep covered in the fridge; sauté spinach and onion up to 1 day ahead, then rewarm before layering.

🍽️ Pairs Well With

  • Mast-o-khiar
  • Shirazi salad
  • torshi
  • fresh herbs (sabzi khordan)
  • pickled garlic (sir torshi).

Regional Variations

  • Tehran-style: uses smaller meatballs and a sharper verjuice finish for a brighter, more tangy profile.
  • Northern Iran-inspired: adds extra spinach and more onion for sweetness, sometimes served with garlic pickles for contrast.
  • Meatless home version: omits meatballs and increases spinach to 1000 g for a lighter pilaf.
everyday holiday party ramadan nowruz
#classic#family-style#gluten-free-option

Ingredients

  • 450 gBasmati rice, uncooked (Rinsed until water runs mostly clear)
  • 18 gFine salt (For salting soaking and boiling water)
  • 800 gFresh spinach (Washed well, thick stems removed, roughly chopped)
  • 60 mlVegetable oil (Divided)
  • 250 gYellow onion (Finely diced)
  • 400 gGround lamb or beef (85–90% lean) (Lamb is most traditional; beef works well)
  • 2 tspGround turmeric (Divided)
  • 1 tspBlack pepper, finely ground (Divided)
  • 45 mlVerjuice (For brightness; add in two additions)
  • 80 gLavash bread (Torn into pieces to cover the pot base)
  • 2500 mlWater (For boiling the rice)

🔄 Substitutions

  • Verjuice→ Fresh lemon juice
  • Ground lamb or beef→ Ground turkey (93% lean)
  • Lavash bread→ Thin pita bread

Instructions

  1. 1

    Rinse the basmati rice in several changes of cold water until the water runs mostly clear. Soak it in enough cold water to cover by 3 cm and add 10 g of the salt; let it soak for 30 minutes so the grains elongate and cook evenly.

  2. 2

    Make the meatball mixture by combining the ground meat, grated-and-squeezed onion, 1 tsp turmeric, 1/2 tsp black pepper, and 6 g salt in a bowl. Knead for 2–3 minutes until tacky and cohesive, then rest it for 10 minutes so the onion integrates and the meatballs hold their shape.

  3. 3

    Roll the mixture into mini meatballs about 18–20 g each (roughly walnut-sized) and place them on a tray. Keep them cool while you prepare the spinach so the fat stays firm and the meatballs brown instead of steaming.

  4. 4

    Heat 30 ml vegetable oil in a wide skillet over medium heat and sauté the 250 g diced onion for 8–10 minutes until golden at the edges. Stir in the remaining 1 tsp turmeric and remaining 1/2 tsp black pepper for 30 seconds to bloom the spice without scorching it.

  5. 5

    Add the chopped spinach in batches, stirring until each batch wilts before adding the next. Cook for 10–12 minutes total until the spinach is tender and most moisture has evaporated, then stir in 30 ml verjuice and cook 1 minute more to brighten the flavor.

  6. 6

    In the same skillet (or a second pan), heat the remaining 30 ml vegetable oil over medium-high heat. Add the mini meatballs in a single layer and brown for 6–8 minutes, turning gently, until they are well-colored on multiple sides; they do not need to be fully cooked through because they will finish steaming with the rice.

  7. 7

    Bring 2500 ml water to a rolling boil in a nonstick or heavy pot and add the remaining 8 g salt. Drain the soaked rice and boil it for 6–8 minutes until the grains are elongated and tender on the outside but still firm in the center; immediately drain and rinse briefly with 250 ml cold water to stop overcooking.

  8. 8

    Rinse and dry the pot, then return it to medium heat and add 30 ml oil. Arrange the lavash pieces to fully cover the base, pressing gently so there are no gaps; this creates an even bread tahdig that crisps instead of steaming.

  9. 9

    Layer one-third of the parboiled rice over the bread, then add half the spinach mixture and half the meatballs. Repeat with another third of rice, then the remaining spinach and meatballs, and finish with the final third of rice, shaping the top into a gentle mound to help steam circulate.

  10. 10

    Poke 5–6 holes down through the rice to the bottom with the handle of a spoon to vent steam. Wrap the lid in a clean towel and cover the pot; cook on medium heat for 8 minutes to build steam, then reduce to low and steam for 45 minutes until the rice is fully tender and the tahdig is deeply golden.

  11. 11

    Drizzle the remaining 15 ml verjuice over the rice, then cover again and rest off-heat for 10 minutes so the flavors settle and the crust releases more easily. To serve, gently fluff the rice, plate it with meatballs distributed throughout, and invert the pot onto a platter to present the bread tahdig alongside.

🪪 Recipe Passport

Origin: Persian Cuisine
Researched by: Zaffaron Kitchen
Published: April 6, 2026

Cultural Background

Rice dishes like Esfanaj Polo highlight the Persian mastery of layered pilaf and tahdig, pairing seasonal greens with meat for balance. It’s a home-style classic that feels elegant on the table thanks to its vivid color and fragrant steam.

Regional Variations

Tehran-style: uses smaller meatballs and a sharper verjuice finish for a brighter, more tangy profile.
Northern Iran-inspired: adds extra spinach and more onion for sweetness, sometimes served with garlic pickles for contrast.
Meatless home version: omits meatballs and increases spinach to 1000 g for a lighter pilaf.

Researched from multiple sources and validated by the Zaffaron editorial team. Every recipe is tested for accuracy, measurements, and cultural authenticity.

Share:

Nutrition per serving

640
Calories
26g
Protein
24g
Fat
78g
Carbs
5g
Fiber
980mg
Sodium

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

Reviews

—
Rated 0.0 out of 5 stars
0 reviews

Cooked this recipe?

Tap the stars to rate it — that's all it takes. A few words are welcome but optional.

Please sign in to rate this recipe.
Rated 0.0 out of 5 stars

No ratings yet. Cooked this one? Be the first to rate it — it takes one tap.