This aromatic bowl combines velvety coconut milk with succulent white fish fillets, creating a luxurious yet light dish. The broth gets its depth from fish stock, fish sauce, and soy sauce, while fresh lime juice and zest provide bright citrus notes that cut through the richness.
Onion, garlic, ginger, and vegetables build a flavorful foundation, simmering until tender before the fish is gently poached. The result is a silky, satisfying soup that feels special enough for guests but comes together quickly enough for weeknight dinners.
Perfect over steamed jasmine rice or rice noodles, garnished with fresh cilantro, green onions, and sliced chilies for those who enjoy heat.
The first time I made this soup, it was a rainy Tuesday and I was craving something that felt like a warm hug from a tropical vacation. My kitchen smelled incredible as the coconut milk hit the broth, that creamy sweetness mixing with the sharp lime zest. Now whenever I make it, that fragrance alone transports me back to that cozy evening.
I served this to my sister once when she was feeling under the weather, and she swore the lime and ginger cleared her sinuses instantly. The way the fish just melts into the broth made her actually ask for seconds, which is saying something since she usually complains about fish being too fishy.
Ingredients
- White fish fillets: I lean toward cod or halibut because they hold their shape beautifully in hot broth without falling apart
- Coconut milk: Full-fat is non-negotiable here, that richness is what makes the soup feel so special and silky
- Fresh lime: Both the juice and zest are crucial, they provide this bright acidity that cuts through the coconut perfectly
- Fish sauce: Dont be intimidated, it adds this deep savory umami that you just cannot replicate with salt alone
- Fresh ginger: Grated fresh gives a warming kick that dried ginger powder never achieves, it makes the whole soup sing
- Red bell pepper and carrots: They add sweetness and color, making the bowl look as gorgeous as it tastes
Instructions
- Build your aromatic base:
- Heat your pot over medium heat with a splash of oil, then sauté the onion until it turns translucent and fragrant, about 3 minutes
- Add the aromatics and vegetables:
- Toss in the garlic, ginger, celery, carrots, and bell pepper, cooking for 4 to 5 minutes until they start to soften and your kitchen smells amazing
- Create the broth:
- Pour in the fish stock and bring everything to a gentle simmer, letting the vegetables infuse the liquid
- Stir in the coconut and seasonings:
- Add the coconut milk, fish sauce, soy sauce, sugar, salt, pepper, and chili if using, stirring well to combine everything into a silky base
- Cook the fish gently:
- Add the fish pieces carefully and simmer for 7 to 8 minutes until they turn opaque and flake easily, being careful not to overcook them
- Finish with brightness:
- Stir in the lime juice and zest, taste everything, and adjust the seasoning if it needs more salt or acid before serving
- Garnish and serve:
- Ladle the hot soup into bowls and top generously with green onions and fresh cilantro for that beautiful restaurant-style presentation
This soup has become my go-to when friends come over for dinner because it looks impressive but comes together so quickly. Everyone always assumes it took hours to develop those layers of flavor, which is a secret I happily keep to myself.
Making It Your Own
Sometimes I toss in a stalk of lemongrass that I have bruised with the back of my knife, letting it infuse the broth while the vegetables cook. Just remember to fish it out before serving so nobody gets an unexpected woody bite.
Perfect Pairings
While this soup is satisfying on its own, I love serving it over a small mound of jasmine rice or alongside some rice noodles to soak up that incredible broth. The starch absorbs all those coconut and lime flavors and turns into something magical.
Make Ahead Magic
The soup base actually tastes better the next day, so I often make it without the fish up to two days ahead and refrigerate it. When I am ready to serve, I gently reheat the broth and add fresh fish pieces for the last few minutes.
- Shrimp work beautifully here too and cook even faster than the fish
- Tofu makes this a fantastic vegetarian option, just press it well first so it absorbs all that flavor
- The spice level is entirely up to you, adjust the chili to match your comfort zone
There is something so comforting about a bowl of soup that feels both exotic and familiar at the same time. I hope this becomes one of those recipes you turn to again and again.
Recipe FAQs
- → What type of fish works best?
-
White fish fillets like cod, halibut, or tilapia hold their shape beautifully during simmering. Look for firm, fresh fillets that won't flake apart too quickly in the hot broth.
- → Can I make this ahead of time?
-
Prepare the vegetable and broth base up to a day in advance. Add the fish fresh when reheating, as it cooks quickly and can become tough if overcooked during storage.
- → How can I adjust the spice level?
-
The red chili is optional—omit it for a mild version or add more slices if you prefer heat. You can also serve sliced chilies on the side, letting each person customize their bowl.
- → What should I serve alongside?
-
Steamed jasmine rice or rice noodles make excellent additions for a heartier meal. The soup also pairs well with crusty bread for soaking up the creamy broth.
- → Can I use light coconut milk?
-
While light coconut milk works, full-fat creates the silky, luxurious texture that makes this soup special. If using light, consider adding a splash of cream or extra fish to maintain richness.
- → How do I store leftovers?
-
Store in an airtight container in the refrigerator for up to 2 days. Reheat gently over low heat to avoid overcooking the fish. The flavors often deepen and improve overnight.