This aromatic bowl combines tender white fish with velvety coconut milk and bright lime zest. The broth gets depth from fish sauce, ginger, and garlic, while colorful vegetables add texture and nutrition. Ready in just over half an hour, this Southeast Asian-inspired soup balances rich creaminess with refreshing citrus. Perfect for weeknight dinners, the dish naturally accommodates gluten-free and dairy-free preferences while delivering impressive restaurant-quality flavors with minimal effort.
The steam curling up from my bowl still takes me back to a rainy Tuesday in a tiny apartment kitchen where I first attempted this soup after falling in love with something similar at a neighborhood Thai spot. I was nervous about working with fish and coconut milk together, worried one would overpower the other, but that first spoonful changed everything. Now it is my go to when I want something that feels luxurious yet somehow still light enough that I do not end up uncomfortably full.
Last winter my friend Sarah came over during a particularly rough week at work and I made a double batch of this soup. We sat at the counter with our bowls, not saying much, just eating and letting the gentle warmth work its magic. She asked for the recipe before she even finished her first serving.
Ingredients
- 500 g white fish fillets: Cod, halibut, or tilapia work beautifully here and cut into bite sized pieces they cook quickly without falling apart
- 1 medium onion, finely chopped: Building a solid aromatic foundation is crucial and onion provides that sweet savory base that everything else rests upon
- 3 garlic cloves, minced: Fresh garlic beats pre minced every single time and those tiny pieces release their perfume into the hot oil
- 1 thumb sized piece fresh ginger, grated: Grating releases more of the gingers essential oils than chopping and distributes the flavor evenly throughout the broth
- 1 red bell pepper, sliced: The sweetness from red bell pepper mellows the heat and adds gorgeous color against the creamy white soup
- 2 small carrots, thinly sliced: Keep these thin so they become tender in the same time it takes the fish to cook through
- 2 stalks celery, sliced: These provide texture and a subtle herbal note that keeps the soup from feeling too one dimensional
- 400 ml full fat coconut milk: Do not use light coconut milk here because you need that richness to carry all the bold flavors
- 750 ml fish or vegetable stock: Fish stock adds depth but vegetable stock keeps it completely vegetarian if that is what you need
- Juice and zest of 2 limes: Both the juice and zest are necessary because the zest holds aromatic oils that brighten the entire dish
- 1 tablespoon fish sauce: This adds umami and saltiness without being fishy if you are worried about the smell it disappears in cooking
- 1 tablespoon soy sauce: Use gluten free if needed and this contributes both salt and a deep caramelized richness
- 1 small red chili, finely sliced: Leave the seeds in if you want noticeable heat or remove them for just a gentle warmth
Instructions
- Build the aromatic base:
- Heat a splash of oil in a large pot over medium heat and sauté the onion until translucent, about 3 minutes, stirring occasionally so it does not brown.
- Add the fragrant vegetables:
- Toss in the garlic, ginger, celery, carrots, and bell pepper, cooking for 4 to 5 minutes until everything begins to soften and the garlic becomes fragrant.
- Create the broth:
- Pour in the fish stock and bring to a gentle simmer, letting the vegetable flavors infuse the liquid for a minute or two.
- Make it creamy:
- Add the coconut milk, fish sauce, soy sauce, sugar, salt, pepper, and sliced chili, stirring well to combine everything into a fragrant, pale orange broth.
- Cook the fish gently:
- Lower the heat slightly and add the fish pieces, simmering for 7 to 8 minutes until opaque and just cooked through, being careful not to break up the chunks.
- Brighten with lime:
- Stir in the lime juice and zest, then taste and adjust seasoning if needed, adding more salt or a squeeze of lime if it feels flat.
- Garnish and serve:
- Ladle the hot soup into bowls and scatter with sliced green onions and fresh cilantro, adding them right before serving so they stay vibrant.
My grandmother used to say that soup heals the soul and this particular one proved her right during a difficult month when cooking felt like too much effort. The rhythm of chopping vegetables and stirring broth became something I looked forward to, a small anchor in the chaos.
Making It Your Own
After making this soup dozens of times I have learned that small tweaks make it feel fresh every time without losing what makes it special. Sometimes I add a bruised stalk of lemongrass during the simmering step and fish it out before serving, which adds this haunting citrusy floral note that people can never quite identify. Other times I toss in a handful of baby spinach at the very end for extra nutrition and a pop of green.
Serving Suggestions
While this soup is substantial enough to stand alone, serving it alongside something to soak up that gorgeous broth transforms it into a proper meal. Steamed jasmine rice is traditional and never a bad choice, but I have also fallen in love with rice noodles added directly to the bowls, where they soften slightly in the hot soup. A simple cucumber salad dressed with rice vinegar helps cut through the richness of the coconut milk.
Getting Ahead
The beauty of this soup is that it actually tastes better the next day when the flavors have had time to marry and deepen. You can prepare the vegetable base and broth up to two days in advance, stopping before adding the fish and lime, then reheat gently and finish with those final ingredients when you are ready to serve. I often double the recipe because the leftovers make such a comforting lunch, though you may need to thin it slightly with extra stock or water since the coconut milk thickens as it sits.
- Store leftovers in an airtight container for up to three days in the refrigerator
- Reheat over low heat and avoid boiling to prevent the coconut milk from separating
- The fish will continue to cook slightly as it reheats so do not worry if it seems less firm than when freshly made
There is something almost meditative about making this soup, the way the kitchen fills with steam and the scent of coconut and lime, and how a bowl of it can make even an ordinary Tuesday feel like a small occasion. I hope it brings you as much comfort as it has brought me.
Recipe FAQs
- → What type of fish works best?
-
White fish fillets like cod, halibut, or tilapia hold their shape beautifully. These mild varieties let the coconut and lime shine while becoming perfectly tender in the simmering broth.
- → Can I make it ahead?
-
The broth base keeps well for 2-3 days refrigerated. Add the fish pieces when reheating to prevent overcooking. The flavors actually develop more depth overnight.
- → How spicy is this soup?
-
The base is gently seasoned with just a touch of optional chili. Adjust heat by adding more fresh chili, sriracha, or red pepper flakes to your personal preference.
- → What sides complement this dish?
-
Steamed jasmine rice or rice noodles soak up the flavorful broth beautifully. Crusty bread also works for dipping. A crisp cucumber salad provides refreshing contrast.
- → Can I use light coconut milk?
-
Light coconut milk works but yields a thinner soup. For the signature silky texture described, full-fat coconut milk creates the luxurious mouthwash that makes this dish special.
- → Is this suitable for freezing?
-
Freeze the broth without fish for up to 3 months. Thaw and simmer with fresh fish pieces when ready to serve. The fish texture suffers if frozen and reheated.