Persian-Style Fish Macaroni (ماکارونی با ماهی) — Coastal tomato-glazed pasta with flaky fish
Inspired by Iran’s coastal home cooking, this macaroni combines a savory tomato glaze with tender pasta and flaky fish. It’s a comforting fusion that feels both familiar and distinctly Persian, often finished with a light tahdig-style crust.

Printable Recipe Card
Servings: 4 · Total: 55 min · Difficulty: medium
Ingredients (quick list)
- 320 g Macaroni (short tube pasta)
- 3000 ml Water (For boiling)
- 14 g Salt (For pasta water (about 2.5 tsp))
- 500 g Boneless white fish fillets (cod, haddock, or tilapia)
- 1 tsp Black pepper
- 30 ml Neutral oil (sunflower or canola) (2 tbsp)
- 150 g Onion, finely diced
- 10 g Garlic, minced (About 3 cloves)
- 360 ml Tomato sauce (plain) (About 1 1/2 cups)
- 30 g Tomato paste (2 tbsp, for deeper color and glaze)
- 1 tsp Ground turmeric (A common Persian base spice)
- 120 g Grated cheese (mozzarella or mild kashkaval) (For melt and richness)
Steps (summary)
- Bring 3000 ml water to a rolling boil in a large pot and dissolve 14 g salt in it. Add the macaroni and boil until just al dent…
- Pat the fish very dry, then season it evenly with 4 g salt and 1 tsp black pepper. Heat 30 ml oil in a nonstick skillet over me…
- In the same skillet, reduce heat to medium and add 30 ml oil if the pan looks dry, then sauté the diced onion for 6–8 minutes u…
- Add the tomato paste and cook it for 1 minute to caramelize slightly and remove raw sharpness. Pour in the tomato sauce and 120…
- Fold the flaked fish gently into the tomato glaze and simmer 1–2 minutes so the fish absorbs flavor without breaking down. Add…
- For a Persian-style dam-keshidan finish, add 10 ml oil to the bottom of a heavy pot and spread it to coat, then spoon in half t…
+ 2 more steps in the full instructions section below.
Cultural Background
Makaroni is a beloved Iranian comfort food, often prepared with a steamed finish that creates a prized crust. Adding fish reflects coastal pantry traditions from the Caspian and Persian Gulf regions, where seafood meets tomato-rich, warmly spiced sauces.
Equipment
💡 Tips
- Keep the fish in large flakes and fold it in at the end to prevent it from turning dry or shredding into the sauce.
- Cook the pasta 1–2 minutes under al dente because it will finish steaming in the pot and can otherwise become mushy.
- If your tomato sauce is very acidic, add 5 g sugar (1 tsp) to the sauce while simmering to round the flavor without making it sweet.
⚠️ Common Mistakes
❌ Overcooking the fish before mixing it into the pasta.
✅ Fix: Sear just until it flakes, then fold into the sauce for only 1–2 minutes so it stays moist.
❌ Skipping the undercooking of pasta and ending up with mushy macaroni after steaming.
✅ Fix: Boil 1–2 minutes less than al dente and drain thoroughly before combining with the sauce.
❌ Burning the bottom crust (tahdig) during steaming.
✅ Fix: Use a heavy pot, keep the final steaming on low heat, and rest 5 minutes off heat before serving.
🧊 How to Store
Cool leftovers within 2 hours, then refrigerate in an airtight container for up to 3 days. Reheat covered in a skillet with 30 ml water over low heat for 8–10 minutes to restore moisture and keep the fish tender; avoid high heat which dries it out.
📅 Make Ahead
Simmer the tomato-onion glaze up to 2 days ahead and refrigerate tightly covered. Cook and flake the fish up to 24 hours ahead, then combine with freshly boiled pasta and steam just before serving for best texture.
🍽️ Pairs Well With
- Shirazi salad
- torshi
- fresh herbs (sabzi khordan)
- pickled garlic
- lemon wedges
Regional Variations
- Northern-style: add 15 ml verjuice (1 tbsp) to the tomato glaze for a brighter, Caspian-inspired tang.
- Southern-style: add 1 tsp ground cumin and 1/4 tsp chili flakes to echo Persian Gulf spice preferences while keeping heat mild.
- Extra-tahdig: line the pot with 1 lavash sheet (about 40 g) brushed with 10 ml oil before adding the macaroni.
Ingredients
- 11.5 ozMacaroni (short tube pasta)
- 12.5 cupWater (For boiling)
- 14 gSalt (For pasta water (about 2.5 tsp))
- 1⅛ lbBoneless white fish fillets (cod, haddock, or tilapia)
- 1 tspBlack pepper
- 2 tbspNeutral oil (sunflower or canola) (2 tbsp)
- 5.3 ozOnion, finely diced
- 10 gGarlic, minced (About 3 cloves)
- 1½ cupTomato sauce (plain) (About 1 1/2 cups)
- 1.1 ozTomato paste (2 tbsp, for deeper color and glaze)
- 1 tspGround turmeric (A common Persian base spice)
- 4¼ ozGrated cheese (mozzarella or mild kashkaval) (For melt and richness)
🔄 Substitutions
- Boneless white fish fillets (cod, haddock, or tilapia)→ Canned tuna in water, drained
- Grated cheese (mozzarella or mild kashkaval)→ Grated provolone
- Tomato sauce (plain)→ Crushed tomatoes, blended smooth
Instructions
- 1
Bring 3000 ml water to a rolling boil in a large pot and dissolve 14 g salt in it. Add the macaroni and boil until just al dente, 1–2 minutes less than the package suggests, then drain well and set aside so it does not overcook.
- 2
Pat the fish very dry, then season it evenly with 4 g salt and 1 tsp black pepper. Heat 30 ml oil in a nonstick skillet over medium-high heat, sear the fillets 2–3 minutes per side until just cooked through, then transfer to a plate and flake into large pieces so it stays succulent.
- 3
In the same skillet, reduce heat to medium and add 30 ml oil if the pan looks dry, then sauté the diced onion for 6–8 minutes until golden. Stir in the minced garlic and 1 tsp turmeric for 30 seconds, keeping it moving so the garlic does not burn and turn bitter.
- 4
Add the tomato paste and cook it for 1 minute to caramelize slightly and remove raw sharpness. Pour in the tomato sauce and 120 ml water, then season with 3 g salt and 1/2 tsp black pepper and simmer 6–8 minutes until glossy and thick enough to coat a spoon.
- 5
Fold the flaked fish gently into the tomato glaze and simmer 1–2 minutes so the fish absorbs flavor without breaking down. Add the drained macaroni and toss carefully until every piece is evenly coated and the mixture looks moist but not soupy.
- 6
For a Persian-style dam-keshidan finish, add 10 ml oil to the bottom of a heavy pot and spread it to coat, then spoon in half the macaroni mixture. Sprinkle 60 g grated cheese, add the remaining macaroni, and top with the remaining 60 g cheese for a melty layer.
- 7
Drizzle 30 ml water around the edges of the pot to create steam, then cover the lid with a clean towel and place it tightly on the pot. Cook 8 minutes on medium heat to build heat, then reduce to low and steam 15–18 minutes until the cheese melts and a light golden crust forms at the bottom.
- 8
Turn off the heat and rest the pot, covered, for 5 minutes so the pasta sets and slices cleanly. Serve by spooning out portions with some of the crust, keeping the fish pieces intact for the best texture.
🪪 Recipe Passport
Cultural Background
Makaroni is a beloved Iranian comfort food, often prepared with a steamed finish that creates a prized crust. Adding fish reflects coastal pantry traditions from the Caspian and Persian Gulf regions, where seafood meets tomato-rich, warmly spiced sauces.
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

Pasta with Walnut Sauce (پاستا با سس گردو) — Creamy Persian Walnut-Yogurt Pasta
Persian · Main Courses · 35 min

Kashmish Polow (کشمش پلو) — Persian Raisin Rice with Slow-Cooked Lamb
Persian · Rice Dishes · 155 min

Pastay Paniri (پاستای پنیری) — Persian-Style Cheesy Pasta with Fresh Tomatoes
Persian · Main Courses · 27 min

Danish Fried Pork Belly (Stegt flæsk med persillesovs) — Crisp Pork with Parsley Sauce
Danish · Main Courses · 60 min

Ecuadorian Roast Pork (Hornado) — Slow-Roasted Achiote Pork
Ecuadorian · Main Courses · 275 min

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

Chicken Chygyrtma (Toyuq Çığırtması) — Azerbaijani Chicken with Eggs and Tomatoes
Azerbaijani · Main Courses · 65 min

Salted Rice Balls (塩おにぎり) — Simple Japanese Hand-Pressed Rice
Japanese · Rice Dishes · 65 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.