Indian Fish Masala
This is the kind of dish that fills the kitchen with the scent of toasted cumin and sizzling ginger. Use a firm white fish like cod or halibut that holds its shape during simmering. The key is adding the fish at the very end — just 5 to 7 minutes in the sauce so it stays flaky, not rubbery. Bloom the whole spices in hot oil first to unlock their full depth. Serve with Herb Rice Pilaf or warm naan to scoop up every last bit of sauce.

Indian · High-Protein, Quick • 30 min
Ingredients
- 1½ pounds firm white fish fillets (cod, halibut, or tilapia), cut into 2-inch chunks
- 3 tablespoons neutral oil (canola or vegetable)
- 1 teaspoon cumin seeds
- 1 large yellow onion, finely chopped
- 4 cloves garlic, minced
- 2 teaspoons grated fresh ginger
- 2 green chilies, slit lengthwise (optional)
- 2 teaspoons coriander powder
- 1 teaspoon ground cumin
- ½ teaspoon ground turmeric
- 1 teaspoon Kashmiri red chili powder (or paprika for mild heat)
- ½ teaspoon garam masala
- 2 medium tomatoes, finely diced (or 1 can / 14.5 oz diced tomatoes, drained)
- ½ cup water
- 1 teaspoon kosher salt, plus more to taste
- Juice of ½ lemon
- ¼ cup chopped cilantro, for garnish
- Cooked basmati rice and naan, for serving
Get Our Free 5-Ingredient Summer Dinners PDF
10 effortless recipes with 5 ingredients or fewer — delivered to your inbox, plus one thoughtful recipe every week.
Steps
- Pat the fish dry with paper towels and season lightly with a pinch of salt and turmeric. Set aside at room temperature.
- Heat oil in a large skillet or wide sauté pan over medium heat. Add cumin seeds and let them sizzle and darken slightly, about 30 seconds.
- Add the chopped onion and cook, stirring occasionally, until deeply golden, 7–8 minutes. Add garlic, ginger, and green chilies. Cook until fragrant, about 1 minute.
- Add coriander powder, ground cumin, turmeric, chili powder, and garam masala. Stir constantly until the spices bloom and smell aromatic, about 30 seconds.
- Add the diced tomatoes and cook, mashing with the back of a spoon, until they break down and the oil starts to separate at the edges, 5–7 minutes.
- Pour in the water and bring to a simmer. Let the sauce thicken slightly, 3–4 minutes. Season with salt.
- Gently slide the fish into the sauce. Spoon some sauce over the fillets. Cover and simmer on low heat until the fish is just cooked through and flakes easily, 5–7 minutes. Do not stir aggressively — gently shake the pan instead.
- Remove from heat. Squeeze lemon juice over the top and scatter with cilantro. Serve immediately with basmati rice and warm naan.
Tips & Variations
Make Ahead
Make the onion-tomato masala base (through step 6) up to 2 days ahead and refrigerate. When ready to serve, reheat the sauce gently, add water if it's thickened, then cook the fish fresh — it only takes 5 minutes.
Storage
Refrigerate leftovers in an airtight container for up to 2 days. The fish will be more delicate on reheating — warm gently in a covered skillet over low heat with a splash of water. Not recommended for freezing — the fish texture suffers.
Substitutions
Salmon works beautifully here — reduce simmer time to 4–5 minutes. For a vegetarian version, substitute firm tofu or paneer cubes (sear them first until golden, then add to the sauce). For extra richness, stir in 2 tablespoons of heavy cream or coconut cream at the end.
Reviews
Reviews coming soon! In the meantime, let us know what you think of this recipe.






