Thai Fish Soup Recipe (Tom Yum Pla)
As an Amazon Associate, I earn from qualifying purchases. Read the full disclosure here .
This authentic Thai fish soup recipe makes a light and aromatic tom yum pla with fresh herbs, tamarind, and tender fish in about 30 minutes. The broth is savory, slightly sour, and much easier to make than you might think.

What readers say:
“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.“
— Ursula
What is tom yum pla?
Tom yum pla is a Thai fish soup made with fish, lemongrass, galangal, kaffir lime leaves, tamarind, and fish sauce. The broth is light, aromatic, slightly sour, and usually mildly spicy depending on the region and family recipe.
Unlike creamy versions like tom yum shrimp and tom yum chicken made with evaporated milk or coconut milk, this version keeps the broth clear and light. It’s light, comforting, and healthy without feeling heavy.
This soup is also sometimes called tom pla in Thailand.

Before you start
If it’s your first time cooking fish soup at home, don’t overthink it too much. This recipe makes sure the broth is properly seasoned and the fish cooked perfectly.
The only part that really matters here is not overcooking the fish, and honestly, it’s easier than most people think. Once the fish gently flakes with a spoon, it’s ready. You do not need to simmer it for a long time.
Keeping the soup at a gentle simmer instead of a rolling boil also helps the broth stay clearer and keeps the fish from breaking apart.
This version is also intentionally mild and family-friendly. If you want more heat, you can add dried Thai chilies, chili flakes, or a spoonful of homemade tom yum paste at the end.
Praew ♡
Ingredient notes & substitutes
You can find everything at Asian grocery stores or markets. Head to the recipe card at the bottom of this post for the exact measurements.

If using frozen fish, thaw completely and pat dry first.
- Fish: Firm white fish works best because softer fish can break apart too quickly in the hot broth. I used tilapia, but snapper, catfish, cod, or sea bass all work well.
- Water: Forms the base of the broth.
- Lemongrass, galangal & kaffir lime leaves: These three herbs are what give tom yum its classic aroma. The broth won’t taste quite the same without them.
- Seedless tamarind pulp: This gives the soup its gentle sourness.
- Fish sauce: Fish sauce adds most of the saltiness and umami. Good fish sauce like Megachef makes a noticeable difference in Asian soups.
- MSG: To enhance the savory flavor without making the broth heavy.
- Salt: Rounds out the broth.
- Shallots: Add natural sweetness and depth.
- Garlic: Gives the broth extra aroma and savory flavor. Fresh garlic works best here.
- Tomatoes, green onions & cilantro: The tomatoes add a little sweetness and freshness while the herbs brighten the soup right at the end.
How to make tom yum fish soup
1. Prepare the fish: Clean the fish and remove the scales and guts if needed. Rinse well under cold water.
If you’re using whole fish, cut it into large pieces. I also like rubbing the fish lightly with salt before rinsing because it helps remove any strong fishy smell.

2. Build the broth: Add water to a pot over medium heat. Stir in the galangal, lemongrass, kaffir lime leaves, garlic, shallots, and tamarind pulp.
3. Season: Season with fish sauce, salt, and MSG. Let the broth simmer for about 5 minutes. You’ll start smelling the herbs almost immediately.

4. Cook the fish: Add the fish and tomatoes to the broth. Let the soup gently simmer until the fish is just cooked through.
Try not to boil the soup too aggressively here or the fish can break apart.

5. Finish with fresh herbs: Turn off the heat and stir in the green onions and cilantro.
Taste the broth one last time before serving. It should taste lightly sour and savory first, with the fresh herbs coming through at the end.

Serving tip: I love serving this with jasmine rice or sticky rice on the side.

How to store & reheat
Storage: Let the soup cool completely before storing in an airtight container in the fridge for up to 3 days.
Reheating: Reheat gently over low heat until hot. Avoid boiling the soup too hard during reheating or the fish can fall apart. Fish texture changes slightly after reheating.
Thai Fish Soup Recipe (Tom Yum Pla)

Equipment
- Cutting board and sharp knife
- Soup pot
- Spoon or ladle
Ingredients
- 1½ lb firm white fish, see notes
- 6¼ cup water
- 2 stalks lemongrass, sliced
- 2 slices galangal
- 2 cloves garlic, minced
- ½ cup shallots, sliced
- 2 tbsp seedless tamarind pulp
- 5 kaffir lime leaves, stems removed
- ½ tbsp salt
- 2 tbsp fish sauce
- 1 tsp MSG
- ⅔ cup tomatoes, quartered
- 4 green onions, chopped
- a handful of cilantro, chopped
Instructions
- Prep the fish: Rinse the fish well under cold water and remove the scales and guts if needed. If using whole fish, cut it into large serving pieces. Rub lightly with salt, then rinse again to help reduce any strong fishy smell.
- Simmer the aromatics: Add the water to a large pot over medium heat. Stir in the galangal, lemongrass, kaffir lime leaves, garlic, shallots, and tamarind pulp. Bring to a gentle simmer.
- Season the broth: Add the fish sauce, salt, and MSG. Let the broth simmer for about 5 minutes until fragrant and slightly tangy.
- Cook the fish: Gently add the fish and tomatoes. Simmer until the fish is fully cooked and flakes easily with a fork. Avoid stirring too much so the fish stays intact.
- Add the herbs: Turn off the heat and stir in the green onions and cilantro.
- Serve: Ladle the soup into bowls and serve hot with rice.
Notes
- Use the nutrition card in this recipe as a guideline.
- Firm white fish works best here because it holds together in the broth. I used tilapia, but snapper, catfish, cod, or sea bass all work well.







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!