
This tangy coconut fish soup balances a velvety broth with zesty citrus hits and soft fish chunks. These Thai-inspired elements turn basic ingredients into a fancy-looking meal that's actually super quick to whip up at home.
I came up with this soup during a wet weekend when I wanted something both warm and fresh. Now the mix of smooth coconut and tangy lime is what I turn to whenever the weather's bad or when friends drop by unexpectedly for dinner.
What You'll Need
- White fish fillets Their subtle taste lets the broth stand out. Go for something firm like cod, tilapia or maybe halibut.
- Vegetable oil Grab something plain that won't mess with the gentle flavors.
- Onion This starts your flavor base. White or yellow ones work best since they get sweeter as they cook.
- Garlic Get fresh cloves for the best punch. Chop them right before you need them.
- Ginger Gives your soup some kick and depth. Pick pieces that feel hard and have smooth skin.
- Red bell pepper Adds color and a bit of sweetness. Look for bright ones with shiny skin.
- Coconut milk Get the full-fat kind for the creamiest texture. Give the can a good shake first.
- Fish stock or chicken broth Homemade is awesome but the stuff from the store works fine too.
- Fish sauce This gives that deep savory taste. Thai brands like Red Boat or Three Crabs are good picks.
- Limes You'll use both the skin and juice to brighten everything up. Pick heavy limes with thin skin.
- Sugar Just a tiny bit cuts the sour taste. Normal sugar works, or try palm sugar if you want to be fancy.
- Red chilies Use more or less depending on how spicy you like things. Take the seeds out for a milder taste.
- Cherry tomatoes These pop with sweet juicy bites. Get the ripest ones you can find.
- Fresh cilantro and basil You can't skip these for that authentic finish. Thai basil is amazing if you can get it.
Simple Cooking Method
- Start Your Flavor Base
- Soften the diced onion in vegetable oil on medium heat for around 5 minutes until see-through but not brown. They'll get nice and sweet this way. Toss in the chopped garlic, ginger and sliced chilies and cook another minute or two until they smell amazing. Keep stirring so nothing burns.
- Mix Up Your Liquid
- Add the coconut milk and your stock or broth, and stir everything together. Drop in the fish sauce, lime zest, juice, and sugar. Mix it all up good. Let it warm up on medium-low for about 5 minutes. You want steam but not bubbling too much.
- Pop In The Veggies
- Drop your sliced red peppers and cut cherry tomatoes into the warm broth. Let them swim around for 5 to 7 minutes on a low bubble. Your peppers should get a bit soft but still have some snap, and tomatoes should stay mostly whole. This gives you different textures in each bite.
- Add Your Fish
- Carefully slip the fish chunks into the broth so they're completely covered. Let them cook for 5 to 7 minutes depending on how thick they are, until they turn white and break apart easily. Don't stir too hard or you'll break up the fish, just spoon hot broth over any parts sticking out.
- Last Touches
- Give the soup a taste and fix it if needed, maybe more fish sauce if it's bland, more lime if it needs zing, or more sugar if it's too sour. Take it off the heat and let it sit for a minute. Throw lots of fresh cilantro and basil on top. Serve it right away in warm bowls with extra lime wedges on the side.

Fish sauce really makes this dish special. It might smell strong while cooking, but it adds that can't-miss flavor that makes the soup taste just right. I once made this for my friend who usually hates seafood, and he not only asked for seconds but wanted to know exactly how I made it.
Plan Ahead
You can cook the soup base up to two days early and keep it in the fridge, which makes this great for dinner parties. Just warm it back up until it's hot, then add your fish right before you're ready to eat. This keeps the fish perfectly tender instead of mushy. The flavors actually get better overnight, so making it ahead is sometimes even better.
Different Styles
You'll find similar soups all across Southeast Asia. In Thailand, they might throw in lemongrass and makrut lime leaves. Malaysian folks often add tamarind to make it more sour, while Vietnamese versions tend to have tons of fresh herbs and bean sprouts. Play around with these extras to create your own favorite version.
What to Serve With It
Make this soup into a full dinner by putting out some steamed jasmine rice. For a fancy touch, stick a small pile of rice in each bowl before you pour the soup around it. Or try serving it with crunchy wonton strips, prawn crackers, or warm roti bread for dipping. A little side of quick-pickled cucumber goes really well with the rich broth too.
Swap Ingredients
Don't worry if you're missing something. Shrimp or scallops work great instead of white fish, just cook them for 2 to 3 minutes instead. You can use veggie broth if you don't have fish stock. Light coconut milk is fine if you're counting calories, though your soup won't be as rich. If you've got no fresh limes, bottled juice works in a pinch, just use a bit less and add extra zest.

Recipe FAQs
- → What fish works best for this soup?
Any sturdy white fish does the job - try cod, halibut, tilapia, or snapper since they won't fall apart while cooking. If you're watching your budget, go for tilapia or cod. Want something fancier? Halibut makes the soup taste extra special.
- → Can I make this soup ahead of time?
You can, but here's a trick: make everything except the fish and keep it in your fridge for up to 2 days. When you're ready to eat, warm up the broth until it's gently bubbling and toss in fresh fish chunks right before serving. This way your fish stays perfectly tender.
- → How can I adjust the spiciness?
It's all about the chilies. Want it mild? Just use half a chili without seeds. Looking for medium kick? Throw in a whole chili with its seeds. Love things hot? Add two full chilies with seeds or a spoonful of sambal oelek or sriracha for an extra punch.
- → What can I substitute for fish sauce?
Fish sauce gives that amazing savory punch, but if you don't have any, mix 2 tablespoons of soy sauce with a squeeze of lime juice. Worcestershire sauce works too in the same amount, though your soup will taste a bit different.
- → What are good side dishes to serve with this soup?
This soup tastes amazing with a bowl of fluffy jasmine rice to soak up all that tasty broth. A simple cucumber salad with rice vinegar adds a cool contrast. Want to make it a bigger meal? Add some spring rolls or a crunchy Asian slaw with sesame dressing.
- → Can I use light coconut milk instead of regular?
You can use light coconut milk but your soup won't be as rich and creamy. Want the best of both worlds? Mix half regular and half light coconut milk. Or thicken the light milk by stirring in a spoonful of cornstarch mixed with water if you want to cut calories but keep it creamy.