Thai Coconut Curry Fish Soup is a lovely blend of creamy coconut milk, tender fish pieces, and vibrant curry spices that come together in a warm, fragrant bowl. The gentle heat from the curry pastes pairs beautifully with fresh lime juice and herbs, making each spoonful a little burst of flavor and comfort. This soup feels like a hug in a bowl, thanks to its rich texture and bright ingredients.
I love making this soup when I want something light but still satisfying, and it always feels a bit like a mini escape to somewhere tropical. I usually add plenty of fresh cilantro and a squeeze of lime right before serving—that fresh pop really wakes up all the other flavors. Plus, using firm, flaky fish helps keep the soup hearty without it getting too heavy.
One of my favorite ways to enjoy this soup is with a side of steamed jasmine rice or just on its own for a quick dinner. It’s also great for sharing because the flavors are familiar enough that everyone tends to enjoy it, but it still feels special and a little different from everyday meals. I find it makes the whole meal feel a bit brighter and more cheerful, especially on cooler nights.
Key Ingredients & Substitutions
Fish: Choose firm white fish like cod or snapper because they hold shape well. If unavailable, try halibut, tilapia, or even shrimp for a tasty switch.
Curry Paste: Thai yellow or red curry paste brings bold flavor. If you can’t find these, a mild curry powder mixed with a bit of chili paste works in a pinch.
Coconut Milk: Full-fat coconut milk gives creaminess and richness. Light coconut milk can be used but expect a thinner soup.
Fish Sauce: This adds salty, umami depth. For a vegetarian option, substitute soy sauce or tamari.
Herbs: Thai basil is classic, but if you can’t find it, regular basil or cilantro still adds a fresh finish.
How Do You Cook Fish Gently Without It Falling Apart?
Cooking fish in soup can be tricky because it’s delicate. Follow these tips:
- Cut the fish into uniform, bite-sized pieces for even cooking.
- Add fish last, after your broth and vegetables are ready.
- Keep the soup at a gentle simmer—avoid a rolling boil which can break the fish apart.
- Simmer for 5-6 minutes or until the fish turns opaque and flakes easily with a fork.
- Use a slotted spoon to carefully stir, so fish pieces stay intact.
This way, your fish stays tender and the soup looks beautiful!

Equipment You’ll Need
- Large pot – I recommend this for even heat and enough space to simmer the soup without spilling.
- Wooden spoon – it’s gentle on the pot and great for stirring all the flavors together.
- Knife and cutting board – for chopping onions, garlic, ginger, and vegetables safely and quickly.
- Measuring spoons and cups – to get the perfect balance of curry paste, fish sauce, and lime juice.
- Can opener – to easily open the coconut milk and fish stock cans.
Flavor Variations & Add-Ins
- Swap the fish for cooked shrimp or scallops for a different seafood twist that cooks quickly and stays tender.
- Try adding sliced bell peppers or carrots for added color and sweetness.
- Use Thai basil or cilantro to enhance the herb fragrance, or add a handful of chopped green onions on top.
- Mix in a splash of coconut cream before serving for a richer, more decadent soup.
How to Make Thai Coconut Curry Fish Soup
Ingredients You’ll Need:
Main Ingredients:
- 1 lb (450g) firm white fish fillets (such as cod, snapper, or halibut), cut into bite-sized pieces
- 1 tablespoon vegetable oil
- 1 small onion, finely chopped
- 2 cloves garlic, minced
- 1 tablespoon fresh ginger, grated
- 2 tablespoons Thai yellow or red curry paste
- 1 can (14 oz / 400 ml) coconut milk
- 2 cups (480 ml) fish stock or chicken broth
- 1 small eggplant, cut into chunks (optional)
- 1 cup fresh spinach or Thai basil leaves, roughly chopped
- 1-2 small red chili peppers, sliced (for garnish)
- 1 tablespoon fish sauce (adjust to taste)
- 1 teaspoon sugar
- Juice of 1 lime
- Fresh Thai basil or cilantro leaves for garnish
How Much Time Will You Need?
This recipe takes about 10 minutes to prepare and about 20 minutes to cook, so you’ll have a delicious, warming soup ready in just around 30 minutes. It’s quick, fresh, and perfect for a cozy dinner!
Step-by-Step Instructions:
1. Sauté the Aromatics:
Heat the vegetable oil in a large pot over medium heat. Add the chopped onion and cook until it’s soft and translucent, about 3 to 4 minutes. Then add the minced garlic and grated ginger, stirring and cooking for around 1 minute until fragrant.
2. Cook the Curry Paste:
Stir in the Thai curry paste and cook for another 1 to 2 minutes. This helps release the rich and spicy flavors that will really make your soup delicious.
3. Add Coconut Milk and Broth:
Pour in the coconut milk and fish stock (or chicken broth), stirring everything together. Bring the soup to a gentle simmer.
4. Cook Vegetables:
Add the eggplant chunks if you’re using them and simmer for 5 to 7 minutes or until the eggplant gets nice and tender.
5. Add the Fish:
Carefully add the pieces of fish to the soup. Let them cook gently for 5 to 6 minutes, until they are opaque and cooked through. Keep the soup at a gentle simmer to avoid breaking the fish apart.
6. Season and Add Greens:
Stir in the fish sauce, sugar, and lime juice. Taste and adjust the seasoning as you like with a little more fish sauce or lime. Then add the fresh spinach or Thai basil leaves and cook just until the greens wilt, about 1 minute.
7. Serve and Garnish:
Ladle your beautiful soup into bowls and garnish with sliced red chili and extra fresh basil or cilantro leaves. Enjoy it straight away, with steamed jasmine rice if you like!
Can I Use Frozen Fish for This Soup?
Yes, you can! Just be sure to fully thaw the fish in the refrigerator overnight before cooking. Pat it dry with paper towels to remove excess moisture, which helps keep the soup from becoming watery.
How Can I Make This Soup Less Spicy?
Use less curry paste or choose a milder paste like Thai yellow curry instead of red. You can also remove the seeds from the chili peppers or skip them altogether to reduce heat.
Can I Prepare This Soup in Advance?
You can make the broth and cook the vegetables ahead of time, but add the fish and fresh greens right before serving to keep everything fresh and prevent overcooking.
How Should I Store Leftovers?
Keep any leftover soup in an airtight container in the fridge for up to 2 days. Reheat gently on the stove over low heat to avoid breaking up the fish pieces, adding a splash of broth if needed.