I first stumbled upon this fish curry recipe during a particularly busy weeknight when I needed something comforting but quick. My usual chicken curry wasn’t going to work because I’d already had meat at lunch, and I wanted something that would still feel substantial. That’s when I remembered how beautifully white fish takes on the flavors of coconut milk and warm spices.
This curry has become my go-to when I want something that tastes like it took hours but actually comes together in about 30 minutes. The key is using a firm white fish like cod or halibut that won’t fall apart when you simmer it in the coconut milk. I’ve learned to cut the fish into larger chunks than you might think you need because they do shrink slightly as they cook.
Building Layers of Flavor in Fish Curry
What makes this version work so well is the order of operations. You build the flavor base first with onions, garlic, and ginger, then bloom your spices in that aromatic mixture before adding the coconut milk. The vegetables go in next so they have time to soften, and the fish gets added at the very end for just a few minutes of gentle cooking. This prevents the fish from becoming tough or stringy.
Perfect Timing for Tender Fish
I love serving this over basmati rice with some fresh cilantro and a squeeze of lime. It’s hearty enough for a family dinner but elegant enough when you want to impress guests. The leftovers are fantastic the next day, though I recommend storing the fish and sauce separately if you can.

Ingredients
Method
- Heat oil in a large, deep skillet or Dutch oven over medium heat. Add diced onion and cook for 5-6 minutes until softened and lightly golden.
- Add minced garlic and grated ginger to the pan. Cook for 1 minute until fragrant, stirring constantly to prevent burning.
- Add cumin, coriander, turmeric, and cayenne pepper to the pan. Stir constantly for 30 seconds until the spices are fragrant and well combined with the aromatics.
- Pour in the coconut milk and vegetable broth, stirring to combine. Bring the mixture to a gentle simmer.
- Add carrots, bell pepper, and green beans to the simmering liquid. Cook for 8-10 minutes until vegetables are tender-crisp.
- Season the fish chunks with salt and pepper. Gently add them to the curry, nestling them into the liquid. Simmer for 5-7 minutes until fish is cooked through and flakes easily with a fork.
- Remove from heat and stir in lime juice. Taste and adjust seasoning with additional salt, pepper, or lime juice as needed.
- Serve immediately over steamed rice, garnished with fresh cilantro.
