Skip to content
Zaffaron

Makaroni ba Mahi (ماکارونی با ماهی) — Persian-Style Fish Macaroni

Persian-style fish macaroni combines saucy tomato-glazed pasta with flaky pan-seared fish, then steams briefly for a cohesive, comforting texture. Finished with grated cheese, it’s a coastal-inspired home-cooking favorite.

By Zaffaron Kitchen· Published March 16, 2026 Verified Recipe
Nut-Free Halal
Contains: dairy, gluten, fish
80 min total Prep 35m · Cook 45m 4 servings 650 cal ~$4.15/serving
↓ Jump to Recipe
Makaroni ba Mahi — Persian-Style Fish Macaroni - authentic persian recipe

Printable Recipe Card

Servings: 4 · Total: 80 min · Difficulty: medium

Ingredients (quick list)

  • 350 g Dried macaroni (short tubes or elbows) (Cook to very firm (undercooked) for steaming later)
  • 3000 ml Water (For boiling pasta)
  • 18 g Fine sea salt (For pasta water)
  • 15 ml Vegetable oil (For coating drained pasta)
  • 500 g Boneless white fish fillets (cod, haddock, pollock, or tilapia) (Cut into 4–5 cm pieces; pat very dry)
  • 2 g Black pepper (Freshly ground)
  • 200 g Yellow onion (Finely diced)
  • 12 g Garlic (Minced)
  • 360 g Tomato sauce (plain) (About 1 1/2 cups; use smooth canned tomato sauce)
  • 120 g Grated cheese (mozzarella or mild cheddar) (Coarsely grated)

Steps (summary)

  1. Bring 3000 ml water to a rolling boil in a large pot. Add 18 g salt, then add 350 g macaroni. Boil until very firm (about 2 min…
  2. Season 500 g fish pieces with 6 g salt and 2 g black pepper. Heat 30 ml oil in a wide skillet over medium-high heat (about 200°…
  3. Reduce heat to medium. In the same skillet, add 30 ml oil, then sauté 200 g diced onion for 8–10 minutes until soft and lightly…
  4. Simmer the tomato glaze uncovered for 8–12 minutes, stirring every 2 minutes, until it thickens to a glossy, spoon-coating sauc…
  5. Set a heavy pot (nonstick or enameled) over medium heat. Add 15 ml oil and 60 ml water to the base. Layer one-third of the maca…
  6. Using the handle of a wooden spoon, poke 5–6 holes down through the layers to vent steam. Cover the lid with a clean towel and…

+ 1 more steps in the full instructions section below.

Cultural Background

Persian-style layered macaroni is a well-known home-cooking technique that uses brief steaming to meld pasta with a seasoned sauce. Coastal households and seafood-loving families often adapt the method with fish, reflecting how everyday Iranian cooking flexibly incorporates local ingredients and preferences.

savorytomato-forwardmildly saltygently pepperytender pastaflaky fishglossy saucemelted cheesetomatogarlictoasted onion🌶 mild

Equipment

Large pot for boiling pastaColanderWide skilletHeavy-bottom pot with tight-fitting lidWooden spoonChef’s knife and cutting boardKitchen scale and measuring cups/spoonsClean kitchen towel for the lid

💡 Tips

  • Undercook the pasta by about 2 minutes; the final steaming is what creates the cohesive Persian-style texture.
  • Pat the fish very dry before searing to prevent sticking and to keep the pieces from breaking apart.
  • If your tomato sauce is acidic, simmer a few minutes longer to mellow it rather than adding sweeteners.
  • A heavy-bottom pot helps prevent scorching during the steaming stage; keep heat low and steady.
  • Grate cheese coarsely so it melts evenly without disappearing into the pasta.

⚠️ Common Mistakes

  • ❌ Cooking the pasta fully during boiling

    💡 Why: Fully cooked pasta turns mushy after the steaming stage and loses the layered texture.

    ✅ Fix: Boil 2 minutes less than package directions and drain well before layering.

  • ❌ Stirring the fish aggressively into the sauce

    💡 Why: White fish breaks into tiny pieces, making the dish dry and uneven.

    ✅ Fix: Sear fish in larger pieces and fold it in gently at the end, warming briefly.

  • ❌ Steaming over heat that is too high

    💡 Why: High heat can scorch the bottom before the pasta finishes steaming through.

    ✅ Fix: Use low heat for 25–30 minutes; a heavy pot and a towel-wrapped lid help regulate steam.

  • ❌ Using a watery sauce

    💡 Why: Excess liquid makes the layers soggy and prevents the glaze from coating the pasta.

    ✅ Fix: Simmer the tomato mixture until glossy and spoon-coating before layering.

🧊 How to Store

Cool to room temperature within 2 hours, then refrigerate in an airtight container for up to 3 days. Reheat covered with 1–2 tablespoons water in a saucepan over low heat for 10–12 minutes, or microwave covered at 50% power until hot throughout. Not ideal for freezing due to fish texture changes.

📅 Make Ahead

Prepare the tomato glaze up to 24 hours ahead and refrigerate. Sear the fish and store separately for up to 24 hours. Boil pasta the day of serving for best texture; if needed, boil up to 6 hours ahead, toss with oil, and refrigerate, then bring to room temperature before layering and steaming.

🍽️ Pairs Well With

  • Shirazi-style cucumber and tomato salad
  • Pickled vegetables
  • Plain yogurt or a cucumber-yogurt side
  • Lemon wedges

Regional Variations

  • Caspian Sea coastOften made with local white fish and a slightly lighter tomato glaze, focusing on the fish’s natural sweetness; some cooks use more onion and keep the sauce less concentrated.
  • Persian Gulf coastMay feature firmer fish and a deeper, more robust tomato base; families sometimes increase black pepper for a warmer finish while keeping the overall profile mild.
family dinners weeknight meals potluck-style gatherings comfort-food cravings
#family-style#weeknight#coastal-inspired#one-pot-finish#comfort-food

Ingredients

  • 350 gDried macaroni (short tubes or elbows) (Cook to very firm (undercooked) for steaming later)
  • 3000 mlWater (For boiling pasta)
  • 18 gFine sea salt (For pasta water)
  • 15 mlVegetable oil (For coating drained pasta)
  • 500 gBoneless white fish fillets (cod, haddock, pollock, or tilapia) (Cut into 4–5 cm pieces; pat very dry)
  • 2 gBlack pepper (Freshly ground)
  • 200 gYellow onion (Finely diced)
  • 12 gGarlic (Minced)
  • 360 gTomato sauce (plain) (About 1 1/2 cups; use smooth canned tomato sauce)
  • 120 gGrated cheese (mozzarella or mild cheddar) (Coarsely grated)

🔄 Substitutions

  • Boneless white fish fillets→ Canned tuna in water, drained (300 g)
  • Tomato sauce (plain)→ Crushed tomatoes (360 g) + 30 ml water
  • Grated mozzarella or mild cheddar→ Grated gouda or Monterey Jack

Instructions

  1. 1

    Bring 3000 ml water to a rolling boil in a large pot. Add 18 g salt, then add 350 g macaroni. Boil until very firm (about 2 minutes less than package directions), so it can finish cooking during steaming. Drain well, return to the pot, and toss with 15 ml oil to prevent sticking.

  2. 2

    Season 500 g fish pieces with 6 g salt and 2 g black pepper. Heat 30 ml oil in a wide skillet over medium-high heat (about 200°C surface heat). Sear fish 2–3 minutes per side until lightly golden and just cooked through. Transfer to a plate; keep pieces intact to avoid shredding.

  3. 3

    Reduce heat to medium. In the same skillet, add 30 ml oil, then sauté 200 g diced onion for 8–10 minutes until soft and lightly golden. Add 12 g minced garlic and cook 60 seconds until fragrant. Stir in 360 g tomato sauce, 120 ml water, 4 g salt, and 1 g black pepper.

  4. 4

    Simmer the tomato glaze uncovered for 8–12 minutes, stirring every 2 minutes, until it thickens to a glossy, spoon-coating sauce. Gently fold the seared fish back in and warm for 2 minutes. Turn off heat; the fish should remain in large flakes rather than breaking into tiny bits.

  5. 5

    Set a heavy pot (nonstick or enameled) over medium heat. Add 15 ml oil and 60 ml water to the base. Layer one-third of the macaroni, then spoon over half the fish-tomato mixture. Add another third of pasta, then the remaining fish sauce, finishing with the last third of pasta.

  6. 6

    Using the handle of a wooden spoon, poke 5–6 holes down through the layers to vent steam. Cover the lid with a clean towel and place it tightly on the pot. Steam over low heat for 25–30 minutes, rotating the pot once halfway, until the pasta is tender and the flavors meld.

  7. 7

    Turn off heat and rest, covered, for 10 minutes to set the layers. Sprinkle 120 g grated cheese over the top, cover again, and let it melt from residual heat for 3–5 minutes. Serve by scooping down to capture all layers, keeping fish flakes as intact as possible.

🪪 Recipe Passport

Origin: Persian Cuisine
Researched by: Zaffaron Kitchen
Published: March 16, 2026

Cultural Background

Persian-style layered macaroni is a well-known home-cooking technique that uses brief steaming to meld pasta with a seasoned sauce. Coastal households and seafood-loving families often adapt the method with fish, reflecting how everyday Iranian cooking flexibly incorporates local ingredients and preferences.

Regional Variations

Caspian Sea coast: Often made with local white fish and a slightly lighter tomato glaze, focusing on the fish’s natural sweetness; some cooks use more onion and keep the sauce less concentrated.
Persian Gulf coast: May feature firmer fish and a deeper, more robust tomato base; families sometimes increase black pepper for a warmer finish while keeping the overall profile mild.

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

650
Calories
39g
Protein
22g
Fat
71g
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.