RHF Logo

Machi ka Salan

1 People Liked
Ranveer Brar
By ChefRanveer Brar
Aarif
AuthorAarif
Updated on5 May 2026

Masala-Packed Fish Curry: A Rich, Thick Gravy Base with Traditional Whole-Spice Tempering

Fish curry in Pakistan is not one dish. It is a hundred different conversations happening at once across a coastline in Sindh, a river bank in Punjab, a mountain stream in KPK, and a fishing village outside Karachi. Each geography, each season, each catch produces a different relationship between the fish and the masala. 

Machi Ka Salan, as Ranveer Brar cooks it, is built around one central argument: the fish is seared before it enters the curry. Not shallow-fried to crispness, not cooked all the way through, but kissed in hot oil for 60 seconds a side so that a crust forms on the exterior. 

This crust does two things simultaneously. It keeps the fish from falling apart during the braising stage that follows. And it creates a layer of caramelised protein on the surface that the gravy clings to, rather than sitting beside it. The difference between fish that has been seared and fish that has been dropped directly into a curry is the difference between a machi ka salan and a fish soup.

Why This Recipe Works Better Than Others

Searing the Fish First Preserves Texture:

Fish dropped directly into a liquid masala breaks apart. The proteins at the surface have no structure to hold against the agitation of a simmering curry. A 60-second sear in very hot oil sets the exterior proteins in place, forming a crust that survives the braising stage and keeps each piece intact from pan to plate. This is the single most important technique decision in the recipe and the one most frequently skipped. Skipping it produces a fish curry. Following it produces a machi ka salan.

Whole-Spice Tarka at the Beginning Creates Aromatic Depth:

Whole cumin seeds and coriander seeds cracked open and bloomed in hot oil release fat-soluble aromatic compounds into the cooking fat before any other ingredient arrives. Every subsequent ingredient, the onion, the tomato, the ground spices and the fish cooks in this spice-infused oil throughout the entire process. Ground spices added at the same stage would burn before the onions softened. Whole spices hold and distribute over the full cooking time.

Onions Cooked to Deep Gold Are Not Optional:

The base of this masala is onion. Not tomato, not ginger-garlic paste, not the spice blend. Onions given 15 to 18 minutes of unrushed cooking over medium heat undergo a complete transformation: the sharp volatile compounds cook off, the natural sugars caramelise, and the texture breaks down into a sweet, dense paste that becomes the backbone of the gravy. Under-cooked onions produce a raw, harsh-tasting curry with a grainy texture that no amount of additional spice can fix.

Tomatoes Must Cook to Completely Dry Before Spices Are Added:

Tomatoes added to the onion base must cook until the water has evaporated entirely and the oil begins to separate from the masala. This ‘bhuno’ stage, when oil floats visibly at the edges of the pan gives signals that the tomatoes have broken down completely and their raw acidity has cooked out. Spices added before this point cook in steam rather than oil and taste undercooked and flat in the finished dish. The oil separation is the visual confirmation that the masala base is ready.

Fish Enters Late and Leaves Early:

Ten to twelve minutes in a simmering gravy is all a firm-fleshed fish like rohu or singhara needs after searing. More time produces fish that flakes into the gravy and loses its identity. Less time produces fish that is raw at the center. The sear has already cooked the exterior; the braise finishes the interior. 

1 / 1
Machi ka Salan fish curry with thick spiced masala gravy in a traditional serving bowl

prep time

20 min

marinate time

30 min

cook time

40

servings

4

Ingredients

14 Total Ingredients
  • Fish
    Fish

    Rohu or Singhara or any river fish, cut into steaks

    700 g
  • Mustard oil
    Mustard oil

    if not available use any cooking oil

    5 tbsp
  • Tomatoes
    Tomatoes

    medium size, roughly chopped

    3 pieces
  • Onions
    Onions

    large, finely sliced

    2 pieces
  • Ginger-garlic paste
    Ginger-garlic paste
    2 tbsp

Method

7 Preparation Steps
1

Marinate The Fish

  • Place the fish steaks in a wide bowl. Add half a teaspoon of turmeric powder, salt to taste, and the juice of half a lemon.

  • Rub the marinade into the fish, turning each piece to ensure even coating. 

  • The turmeric stains the flesh and begins building the flavour from the inside. 

  • Leave to marinate for a minimum of 30 minutes at room temperature, or up to 2 hours in the refrigerator. 

  • Do not marinate overnight, the lemon acid will begin to denature the surface proteins and make the flesh mushy

Chef’s Tip

Pat the fish steaks dry with a kitchen towel before searing even after marinating. Surface moisture is the enemy of a proper sear. Wet fish placed into hot oil creates steam instead of direct contact with the pan, and produces a pale, steamed exterior rather than a golden crust. 

2

Sear The Fish

  • Heat 3 tablespoons of oil in a wide, flat pan over high heat until shimmering. 

  • If using mustard oil, heat to smoking point, remove from heat for 30 seconds to cool slightly, then return to medium-high.

  • Place the marinated, patted-dry fish steaks into the hot pan in a single layer without crowding. 

  • Do not move them for a full 60 seconds. A proper crust forms through uninterrupted contact with the hot pan surface. 

  • After 60 seconds, carefully flip each steak. Cook for a further 60 seconds on the second side. 

  • Remove from the pan and set aside on a plate.

Chef’s Tip

Use a fish spatula or a thin flat spatula for flipping. Tongs grip and break fish steaks. If the steak resists when you try to flip it, it is not ready, wait 15 more seconds. A properly seared steak will release cleanly from the pan surface without tearing. Forcing an early flip tears the crust and defeats its purpose entirely.

3

Bloom The Whole Spices — Build The Tarka

  • In the same pan used for searing, add the remaining 2 tablespoons of oil over medium heat. The fish-stained oil left in the pan carries flavour, do not clean the pan between steps.

  • Add the whole cumin seeds and lightly crushed coriander seeds. 

  • Allow them to sizzle for 30 to 40 seconds, stirring once, until fragrant and lightly darkened from their raw colour.

  • Do not let the seeds burn. Burnt cumin and coriander are intensely bitter and ruin the aromatic base of the entire curry. If the seeds are darkening too fast, reduce the flame immediately.

Chef’s Tip

The distinction between bloomed spices and burnt spices is approximately 15 seconds at the wrong heat. Visual cue: the seeds have darkened by one shade from their raw colour and are fragrant. Aroma cue: a warm, toasty, slightly sweet smell. If you smell anything sharp, acrid, or smoky, the seeds have gone too far. Add the onions immediately to arrest the heat in the pan.

4

Cook The Onions To Deep Gold

  • Add the finely sliced onions to the spiced oil. Stir to coat evenly in the oil and spread into an even layer.

  • Cook over medium heat, stirring every 3 to 4 minutes, for 15 to 18 minutes until the onions are deeply golden-brown throughout,  the colour of dark honey or light amber, not pale yellow.

  • Add the ginger-garlic paste and stir vigorously to incorporate. The paste will spit in the hot fat and release moisture. Cook for 3 to 4 minutes, stirring continuously, until the raw smell of the garlic has completely disappeared and the paste is lightly coloured

Chef’s Tip

Resist the urge to increase the heat to speed the onion stage. Onions caramelise through a slow, patient process of water evaporation and sugar transformation. High heat evaporates the water too quickly, burns the surface before the interior has cooked, and produces onions that are brown on the outside and raw on the inside. This produces a bitter, harsh-tasting curry. Medium heat and patience produce the sweet, mellow onion base that defines this masala

 

5

Add Tomatoes, Build The Masala

  • Add the roughly chopped tomatoes to the golden onion base. Stir to combine and cook over medium heat, stirring occasionally, for 10 to 12 minutes until the tomatoes have completely broken down and the oil is visibly separating from the masala at the edges of the pan.

  • Once the oil separates, add the red chili powder, coriander powder, and the remaining half teaspoon of turmeric. Stir continuously for 2 minutes to fry the ground spices in the oil rather than the tomato liquid.

  • Season with salt. The masala should now be thick, deeply coloured, and fragrant. A small amount of water 2 to 3 tablespoons can be added if the masala appears dry, then cooked down again before adding the fish

Chef’s Tip

The oil separation is the most important visual checkpoint in the recipe. It signals that the tomatoes have cooked completely, their water has evaporated, and the masala is now frying in oil rather than simmering in liquid. Spices added before this point taste raw and flat in the finished curry. Spices added after the oil separates fry correctly in the fat and bloom fully. Do not rush past this stage

6

Add Fish And Simmer To Finish

  • Add 1 to 1.5 cups of warm water to the masala and stir to form a gravy. Bring to a gentle simmer over medium heat.

  • Carefully slide the seared fish steaks into the simmering gravy in a single layer. Spoon some of the gravy over the top of each steak.

  • Cover the pan loosely and cook over medium-low heat for 10 to 12 minutes. Do not stir aggressively, use a spoon to gently baste the fish with gravy. The fish is ready when it flakes at the thickest point when tested with a fork and is opaque all the way through.

  • In the final 2 minutes of cooking, add the slit green chilies and half the chopped fresh coriander directly to the gravy. Stir gently once to incorporate.

Chef’s Tip

10 to 12 minutes is the window. Beyond 15 minutes in a simmering gravy, even firm-fleshed fish like rohu begins to break apart. The sear has cooked the exterior; the braise finishes the interior. If you are uncertain, test at 10 minutes by pressing the thickest steak with a fork at its centre, it should give without resistance and look opaque through. If resistance remains, give it 2 more minutes and test again.

7

Finish And Serve

  • Remove from heat. Scatter the remaining fresh coriander over the surface of the curry.

  • Transfer to a serving dish carefully, a wide, flat serving bowl preserves the fish steaks intact better than a narrow deep bowl.

  • Serve immediately with plain basmati rice, fresh chapati, or naan. The gravy is calibrated to be scooped with bread or spooned over rice. It should be thick enough to coat the back of a spoon but fluid enough to pool around the fish on the plate.

Chef’s Tip

Machi Ka Salan does not store or reheat as gracefully as a meat curry. The fish continues to cook in residual heat even after the pan is removed from the flame. If serving for a gathering, keep the fish out until the last possible moment. Reheat gently over the lowest available flame with a splash of water to loosen the gravy, and stop the moment the fish is warmed through. A second full boil will destroy the texture entirely.

👨‍🍳
Chef's Note

The Sear Is the Soul: What Most Fish Curries Are Missing

Every time I see a cook drop raw fish directly into a masala, I know what the dish is going to taste like before I even pick up a spoon. The fish will be grey. It will be soft. It will taste of the gravy rather than of itself. The sear is not an extra step, it is the foundation. It locks in the juices, it builds the crust that holds the fish together, and it gives the masala something to cling to rather than something to dissolve. Sixty seconds a side in a very hot pan. That is all the difference between a machi ka salan and a pot of spiced fish.

Nutritions

Per Serving (~ 175g )

Total Energy
285kcal
Protein
28g
Carbs
10g
Fat
16g
Saturated Fat5g
Dietary Fiber2g
Vitamin D35%

People Also Ask

5 Common Questions

Rohu is the traditional choice for Pakistani river fish curry and is widely available fresh at fish markets across Punjab and Sindh. Singhara (catfish) is an excellent alternative with a slightly richer, fattier flesh. For coastal regions, king fish (surmai) or pomfret steaks work beautifully with this masala. The key quality is firm flesh that holds together during searing, avoid delicate white fish like sole or tilapia fillets, which will break apart. Whatever fish you use, always buy the freshest available on the day of cooking

Technically yes, but the result will be a fundamentally different dish. Without searing, the fish will break apart during braising, the flesh will be soft and indistinct, and the gravy will taste fishy from the proteins leaching directly into the liquid. The sear takes 4 minutes total and changes everything about the final texture and flavour. If time is genuinely unavailable, shallow-fry the fish pieces completely and add them to the masala in the final 3 minutes of cooking just to warm through, this produces a different but acceptable result

Three causes produce a thin gravy. The onions were not cooked long enough and still contained too much water. The tomatoes were not cooked to the oil-separation stage before liquid was added. Or too much water was added in the braising stage. To fix a thin gravy: remove the fish to a plate, increase the flame to medium-high, and boil the gravy uncovered for 5 to 8 minutes until it reduces to the correct consistency. Return the fish to the pan, warm for 2 minutes, and serve.

Mustard oil is traditional and contributes a distinctive pungency and depth that defines the flavour profile of this curry. However, it is not strictly necessary. A neutral oil like sunflower or rice bran produces a milder, cleaner-tasting curry that allows the individual spices to be more distinct. Avoid olive oil, which has a low smoke point and a flavour that competes with the masala. If using mustard oil for the first time, heat it to smoking point and allow it to cool for 30 seconds before cooking, this step removes the harsh raw flavour

The masala base (onion, tomato, spice) can be made up to 2 days in advance and refrigerated. The fish must always be seared and added fresh on the day of serving. Reheat the masala base over medium heat, add water to restore the gravy consistency, and proceed from Step 6. Pre-cooked fish stored in the gravy overnight becomes overcooked and loses its texture. For best results, treat the masala and the fish as two separate components and combine them only at the point of serving.