This authentic Thai fish soup recipe makes a delicious tom yum pla in 30 minutes! Itโs a healthy gluten-free meal with a light fish broth, fresh herbs, and spices like lemongrass and galangal.

Tip: Tom yum can be made with any protein. Try it with chicken, seafood, or even with noodles!
Tom yum fish soup is made with lemongrass, galangal, lime leaves, and fresh herbs. It has a light, sour, and slightly spiced broth. The soup uses fish as the main protein and gets its flavor from fresh tamarind, fish sauce, and aromatic Thai ingredients.
A quick note about this soup
In this recipe, weโll make a lighter version of the soup, also known as tom pla. Itโs not spicy, but it has a gentle hint of the herbs and spices, making it family-friendly and incredibly healthy.

If you want it spicier, just add some dried Thai chilies or stir in a spoonful of my homemade tom yum paste.
The broth is so aromatic and full of flavor. This is basically how I learned to make it from my grandmother in Thailand!

Ingredient tips and notes
You’ll find ingredient notes and step-by-step below. Head to the printable recipe card for exact measurements.

- Fish – The best fish for tom yum soup is firm white fish like tilapia, snapper, or catfish. They hold up well in the broth and absorb flavor without falling apart. I used whole tilapia.
- Fish sauce – Adds salty depth and umami. Look for good quality Thai brands like Megachef at your local Asian grocery store or Asian market.
- MSG – A common flavor enhancer in Thai cooking that boosts the overall taste of the soup.
- Salt
- Tomatoes, green onions, cilantro
- Kaffir lime leaves
- Fresh tamarind – Adds sourness. Available at Asian markets or well-stocked supermarkets.
- Galangal root – A close cousin of ginger with a sharp, citrusy taste.
- Lemongrass
- Shallots
- Garlic
- Water
Step-by-step image instructions
Step 1: Remove the scales and guts. Rinse the fish under cold water, then scrub it with salt and flour to remove any fishy smell. Pat it dry and cut into large chunks.
Step 2: Add water to a pot over medium heat. Stir in galangal, kaffir lime leaves, shallots, garlic, and fresh tamarind. Season with fish sauce, salt, and a pinch of MSG. Let everything simmer for about 5 minutes to build flavor.

Step 3: Add the fish pieces and tomato wedges to the pot. Let the soup gently simmer for another 3โ4 minutes, or until the fish is just cooked through.

Step 4: Turn off the heat and stir in the green onions and cilantro. Serve hot and enjoy!

To serve: Ladle the soup into separate bowls, make sure each serving gets a mix of fish and vegetables. Top each bowl with your favorite herbs like cilantro or chopped green onions. Optionally, add a side of jasmine rice or sticky rice.
How to store and reheat
- Storage: Let the soup cool to room temperature before storing. Transfer into an airtight container and refrigerator. It’ll keep well for up to 3 days.
- Reheating: Reheat in a pot over low heat, stirring occasionally. Alternatively, use a microwave.
More Thai soup recipes you’ll love
Enjoyed this authentic Thai fish soup recipe without coconut milk? Let me know what you think by leaving a star rating or a comment below! You can also follow me on Facebook,ย Instagram, andย Pinterest.
Thai Fish Soup Recipe (Tom Yum Pla)

Equipment
- Cutting board and sharp knife
- Soup pot
- Spoon or ladle
Ingredients
- 1.5 lb fish, see notes
- 6 1/4 cup water
- 2 stalks lemongrass, thinly sliced
- 2 slices galangal
- 2 cloves garlic, minced
- 1/2 cup shallots, sliced
- 2 tbsp fresh tamarind
- 5 kaffir lime leaves, stems removed
- 1/2 tbsp salt
- 2 tbsp fish sauce
- 1 tsp MSG
- 2/3 cup tomatoes, quartered
- 4 green onions, chopped
- a handful of cilantro, chopped
Instructions
- Rinse the fish under cold water and scrub with salt and flour to eliminate any fishy smells. Remove scales and guts, then pat dry and cut into large chunks for your soup.
- Place a pot over medium heat and add your water. Add galangal, kaffir lime leaves, shallots, garlic, and fresh tamarind. Then, add MSG, fish sauce, and salt. Let it simmer for 5 minutes.
- Add fish pieces and tomatoes. Let the soup simmer for approx 3 minutes.
- Turn off heat and stir in green onions, and cilantro. Serve immediately.
Notes
- Use the nutrition card in this recipe as a guideline.
- Fish: I used a whole tilapia, feel free to use your favorite type of fish like cod or sea bass.
Thank you so much Praew for this recipe. I made the soup and it tasted wonderful. I did add some prik nam pla which rounded it up nicely. I discovered your site only recently. Tom Yum Pla is not going to be the only dish Iโll try out ???
That’s great to hear, and thank you so much for trying the recipe and leaving a comment!
Hi, a couple of questions. I should cut the whole fish into chunks first right? What would you suggest to serve with it, if anything? Is it good just on it’s own or maybe we rice?
Hey! Sorry for the late response, your comment wasn’t showing under new comments! Yes, the fish should be cut into large chunks after cleaning. You can serve this soup with steamed rice or even sticky rice, but also on its own. Enjoy!
I used this as a launching point for making more of a hot and sour style soup but this is a great base for that. I really think the tamarind is so key. I added more in the process and it instantly tasted better. The broth was so good. To prepare it I got fresh tamarind from my grocery store, peeled and deveined the whole bag, and then poured boiling water over it and let it sit for about 45 minutes. Then it easily came apart. I squeezed out all the seeds, broke it up and then pushed it through a strainer. I simmered the resulting tamarind water until it was at a concentration that I wanted. Even before the simmer though it tasted good.
Thank you so much for dropping a comment!