This Fish Curry Recipe (Pakistani Fish Karahi) is a delicious and simple weeknight meal that takes only 30 minutes to prepare.

WANT TO SAVE THIS RECIPE?
Having lived by the water most of my life, I'm a huge fan of seafood. This recipe, where tender white fish is cooked in a rich and fragrant spiced tomato-based curry, is comfort food at its best.
Enjoy it with a bowl of plain basmati rice for an easy weeknight meal, or make it more elaborate and serve with a side of moong-masoor dal lentil curry, Hyderabadi bagara baingan, kachumber salad, and raita.
Jump to:
Why you'll love this recipe
- Quick & Easy Recipe: This recipe, like my Lahori fish recipe, takes just 30 minutes to prepare, making it great for busy weekday nights.
- Nutritious and satisfying: Packed with protein, healthy spices, and vegetables, this fish curry is both nourishing and incredibly satisfying.
- Budget-friendly recipe: The majority of white fish varieties are budget-friendly, making this an affordable weeknight dinner option.
- No fishy smell: Most white fish is mild in taste and texture, and rarely has a fishy smell, making this a perfect recipe even for people who are not huge fans of seafood.
Ingredient notes

- Fish: I mostly use Tilapia for this recipe, but have tried it with white trout, catfish, and mahi mahi. Check the complete list of fish varieties you can use in the section below.
- Cooking oil: Use a neutral oil with a high smoking point, like canola or vegetable oil, for preparing this fish curry.
- Onions: Medium yellow onions are fried until golden, to form the flavor base for this recipe.
- Ginger & garlic: This is an essential ingredient in all curries, and I always recommend using a fresh homemade paste if time allows.
- Cumin seeds: Whole cumin seeds, briefly toasted, add an irresistible earthy flavor.
- Tomatoes: Fresh Roma tomatoes work best for most Pakistani recipes.
- Spice Blend: A homemade blend of salt, cumin, coriander, turmeric, red chili powder, and Kashmiri chili powder is used for this fish curry recipe.
- Serrano chilies: Chopped green chilies are a core ingredient in any karahi recipe, and serranos are my preferred ones to use.
- Julienned ginger: This adds a fresh citrusy and peppery flavor and aroma that tastes delicious and helps counter any fishy smell.
- Curry leaves: A traditional Pakistani herb with a citrusy flavor and smell, these pair perfectly with fish curries.
- Cilantro: No curry is ever complete without a generous sprinkle of fresh chopped cilantro.
Please see the recipe card at the bottom of this post for the complete list of ingredients, measurements, and recipe instructions.
Substitutions & variations
- Use a different fish: Firm, fresh white fish like halibut, basa, cod, or flounder, cut into 2-inch pieces, are all great options for this fish curry recipe.
- Make it with shrimp: I love using this recipe with shrimp. Use peeled and deveined large or medium shrimp for best results, and follow the recipe exactly as is.
- Add different spices: Whole spices like ajwain, mustard seeds, and fenugreek all pair beautifully with seafood. Add 1, 2, or all 3 to your fish curry spice blend for an extra layer of flavor.
- Substitute the Kashmiri Chilies: Paprika makes a perfect substitute for Kashmiri Chilies in this or any other recipe.
- Try a different oil: Mustard oil has a pungent smell and peppery flavor that tastes amazing in this fish curry.
Step-by-step instructions

- Step 1: Dice the onion and add it to the preheated cooking oil in a sauté pan. Add the ginger garlic paste once the onion is golden brown and sauté for 30 seconds to bloom.

- Step 2: After about 30 seconds, add the cumin seeds and carom seeds if you're using them, and sauté for 30 seconds.

- Step 3: Add the chopped tomatoes, and sauté until they start to soften. Add ½ a cup of water, cover your pan, and cook on medium heat for 10-15 minutes.

- Step 4: Uncover the pan, turn the heat on high, and cook until all the excess liquid evaporates. Add the spice blend and saute for one minute to allow the spices to bloom.

- Step 5: Sauté continuously at this point, mashing the tomatoes and onions as you fry the spicy masala. Once you have a cohesive mixture and the oil separates and floats to the top, add the serrano chilies and saute for 30 seconds.

- Step 6: Add ½ a cup of water to the prepped curry base, place the fish in an even layer, sprinkle with the curry leaves, cover, and cook for 5 minutes, till the fish turns white.

- Step 7: Use a digital thermometer like a Thermapen to check the internal temperature of the fish and make sure it's 145℉. Garnish with the julienned ginger and cilantro and serve.
Expert Tips
- Don't overcook the fish: Overcooking seafood makes it dry and stringy. Check the fish after 5 minutes of cooking and use a thermometer to get a reading. Ideally, you should turn the stove off once the fish is around 135℉. Leave it covered for 5-10 minutes, and it will continue to cook and reach the ideal temperature.
- How to dry out excess water: Fish, like any other meat, releases water as it cooks. If the fish is cooked through and the curry is too watery, remove it from the cooking pot and cover it with foil to keep it warm. Next, increase the heat, dry out any excess water, and then add the fish back to the curry once you've achieved the desired consistency.
- Pat the fish dry: Keeping your filets dry helps prevent them from smelling fishy. Thaw the fish completely and pat the filets dry before cooking.
Recipe FAQS
Once you add the filets to the saute pan, make sure not to stir them. If you're a beginner when it comes to cooking seafood, coat the fish with cornflour, saute, and then add the cooked fish to the prepared curry.
To eliminate the odor from fish, you can add salt or lemon juice to it and let it sit for 20 minutes. Another effective method is to soak the fish in milk for 20 minutes before cooking the fish curry.
It's always a good idea to eat seafood fresh. Try to calculate the servings per person to minimize leftovers. In the event that you have leftovers, store them in the fridge and consume them within 24 hours. Freezing is not recommended.

Other curries you may like
Did you try this recipe? Leave a ⭐️⭐️⭐️⭐️⭐️ rating below and share it on Instagram, Facebook, and Pinterest!
Fish Curry Recipe (Pakistani)
WANT TO SAVE THIS RECIPE?
Ingredients
The Fish Curry
- 1¼ lbs fish (see notes)
- ¼ cup cooking oil
- ½ yellow onion
- 1 teaspoon garlic paste (see notes)
- 1 teaspoon ginger paste (see notes)
- 1 Roma tomatoes
- 1 teaspoon cumin seeds
- 1 teaspoon carom seeds(ajwain) (optional)
- ½ cup water
- 1 serrano chilies (see notes)
- 10 curry leaves
- ¼ cup cilantro
Spice Blend
- 1 teaspoon salt
- ½ teaspoon cumin powder
- ½ teaspoon coriander powder
- ¼ teaspoon turmeric powder
- 1 teaspoon red chili powder
- ½ teaspoon Kashmiri chili powder
Instructions
- Dice the onion and add it to the preheated cooking oil in a large sauté pan (see notes).
- Add the ginger garlic paste once the onion is golden brown and sauté for 30 seconds to bloom.
- After about 30 seconds, add the cumin seeds and carom seeds if you're using them, and sauté for 30 seconds.
- Add the chopped tomatoes, and sauté until they start to soften. Add ½ a cup of water, cover your pan, and cook on medium heat for 10-15 minutes.
- Uncover the pan, turn the heat on high, and cook until all the excess liquid evaporates. Add the spice blend and saute for one minute to allow the spices to bloom.
- Sauté continuously at this point, mashing the tomatoes and onions as you fry the spicy masala. Once you have a cohesive mixture and the oil separates and floats to the top, add the serrano chilies and saute for 30 seconds.
- Add ½ a cup of water to the prepped curry base, place the fish in an even layer, sprinkle with the curry leaves, cover, and cook for 5 minutes, till the fish turns white.
- Use a digital thermometer like a Thermapen to check the internal temperature of the fish and make sure it's 145℉. Garnish with the julienned ginger and cilantro and serve.
Leave a Reply