Thai Slow Cooked Fish in Coconut Broth (Pla Tod Lon)
Balance is everything. Thai cooking understands this in its bones — taste and adjust. This slow cooked fish is a perfect example of that philosophy in action.
Every element in this dish has a purpose. The heat wakes you up. The herbs cool you down. The fish sauce grounds everything. Together, they create harmony on the plate. Fresh herbs are life.
Ingredients
For the Aromatic Paste Base
3-4 Thai bird's eye chilies (seeds removed for less heat, kept whole for presentation)
3 tablespoons fresh galangal, sliced thinly (approximately 1½-inch piece)
2 stalks fresh lemongrass, tender white parts only, chopped (approximately ⅓ cup)
4 cloves fresh garlic, peeled
2 small shallots (approximately 60g total), peeled and halved
1 tablespoon fish sauce (nam pla)
½ teaspoon shrimp paste (kapi, optional but recommended)
¼ teaspoon white pepper
2 tablespoons vegetable oil
For the Fish and Cooking Liquid
1 whole fresh fish (1.2-1.5kg / 2.5-3 lbs), such as sea bass, grouper, or snapper—scaled and gutted with head removed (ask your fishmonger)
OR 4 thick-cut fish fillets (150-200g each) such as halibut, sea bream, or cod
1 can (400ml) full-fat coconut milk
1 cup fish stock or light chicken stock
3 tablespoons tamarind paste concentrate (or tamarind pulp prepared as directed)
2 tablespoons fish sauce (nam pla)
1½ tablespoons palm sugar
1 teaspoon sea salt (adjust to taste)
½ teaspoon white pepper
For Aromatics and Finish
4-5 kafir lime leaves, torn
2 tablespoons fresh lime juice
3-4 Thai red chilies, sliced thinly (for garnish)
Fresh cilantro leaves
Green onions, chopped
Fresh Thai basil leaves (optional, for garnish)
Crispy fried shallots (optional, for texture)
Optional Vegetables (for added depth)
1 small handful fresh morning glory (water spinach) or fresh spinach
2-3 button mushrooms, halved
1 medium red bell pepper, cut into strips
Equipment Needed
Large shallow braising pan or Dutch oven (5-6 quarts)
Large enough to hold whole fish or arrange fillets in single layer
Cutting board and sharp knife
Measuring cups and spoons
Mortar and pestle (for paste preparation, optional)
Food processor (alternative to mortar and pestle)
Small saucepan (for preparing aromatics)
Wooden spoon
Fish spatula or slotted spoon (for handling fish gently)
Instant-read thermometer
Shallow serving platter
Ladle
Instructions
Step 1: Prepare and Measure Fish (5 minutes)
If using whole fish, ensure scales have been removed and the fish is gutted with head removed. Pat the fish completely dry inside and out with paper towels—moisture interferes with the initial browning and flavor development.
Season the inside cavity and outside surface of the fish with ½ teaspoon sea salt and ¼ teaspoon white pepper. Distribute evenly.
If using fillets, pat them dry and season similarly. Fillets will cook in 12-15 minutes; whole fish takes 18-22 minutes depending on thickness.
Set the prepared fish aside on a clean plate. It should be at room temperature (approximately 20°C / 68°F) before cooking begins.
Step 2: Create the Aromatic Paste (10 minutes)
Slice the galangal thinly, cutting across the grain. Galangal is fibrous and benefits from cross-grain slicing.
Chop the lemongrass into 1-inch pieces, then crush lightly with the side of your knife to help release aromatic oils.
Peel garlic cloves and halve the shallots.
Arrange all aromatics on a cutting board for easy access.
Using Mortar and Pestle Method (preferred for authentic texture):
Add the garlic and shallots to the mortar first. Crush against the bottom with the pestle, using circular motions, for 2-3 minutes until broken down to small pieces.
Add the sliced galangal and continue crushing and grinding for 2 minutes. Galangal requires patience—keep pressing firmly.
Add the chopped lemongrass and grind for 1-2 minutes until fragrant and partly broken down.
Add the white pepper and shrimp paste (if using) and mix thoroughly for 30 seconds.
The final paste should be chunky, aromatic, and hold together loosely. It should smell intensely of galangal, lemongrass, and garlic.
Using Food Processor Method (faster):
Add all aromatics to the food processor and pulse 8-10 times, creating a coarse paste. Avoid pureeing—texture is important.
Step 3: Toast the Paste in Oil (5 minutes)
Heat 2 tablespoons vegetable oil in a large shallow braising pan over medium heat until shimmering (approximately 120°C / 250°F).
Add the entire aromatic paste to the hot oil. Listen for a sizzle—this indicates proper temperature.
Stir continuously with a wooden spoon for 3-4 minutes, allowing the paste to "toast." The mixture will darken slightly and smell increasingly fragrant.
You're looking for a deep, complex aroma—not burned or acrid. The oils from the spices should begin releasing into the oil base.
Add 1 tablespoon fish sauce and stir to combine. The fish sauce adds umami and helps develop the flavor base.
Step 4: Build the Braising Liquid (3 minutes)
Pour the coconut milk into the pan with the toasted paste. Stir immediately and vigorously for 1 minute, creating an even mixture.
Add 1 cup fish or chicken stock in a steady stream while stirring.
Add 3 tablespoons tamarind paste concentrate, 2 tablespoons fish sauce, and 1½ tablespoons palm sugar. Stir well to combine fully.
The liquid should smell deeply aromatic—coconut sweetness balanced with tamarind's sour depth and the umami of fish sauce. This is your braising liquid.
Increase heat to medium and bring the liquid to a gentle simmer (small bubbles breaking surface, not a rolling boil). This takes 2-3 minutes.
Taste the liquid and adjust seasoning: add more palm sugar if too sour/salty, more fish sauce if too sweet or bland, more tamarind if not sour enough. The flavor should be balanced—no single note dominating.
Step 5: Introduce the Fish (2 minutes)
Once the braising liquid reaches a gentle simmer, carefully place the prepared whole fish (or arrange fillets skin-side up) in the pan.
For whole fish: The fish should be mostly submerged in the liquid, though the top may stay slightly above the surface. The braising liquid will cook the top through steam and heat circulation.
For fillets: Arrange skin-side up and ensure they're submerged or mostly covered by braising liquid.
Do not stir or flip the fish at this stage. Let it rest undisturbed in the hot liquid for 2-3 minutes as the initial cooking begins.
Step 6: Slow Braise with Aromatics (18-22 minutes for whole fish, 12-15 for fillets)
Reduce heat to low-medium, maintaining a very gentle simmer—you should see only tiny bubbles forming at the bottom of the pan, not active boiling.
Tear the kafir lime leaves and scatter them over the fish. Do not stir; let them float in the braising liquid.
For whole fish: Gently spoon the hot braising liquid over the top of the fish every 3-4 minutes, basting the exposed surfaces. This ensures even cooking and allows heat to penetrate to the center.
For fillets: Baste less frequently—every 5 minutes is sufficient.
Continue cooking until the fish is cooked through. Test for doneness by inserting an instant-read thermometer into the thickest part of the fish:
- Whole fish: 63°C (145°F) at the thickest point near the backbone
- Fillets: 63°C (145°F) at the center
The fish should flake easily when tested with a fork but still be moist. Err on the side of undercooking slightly—carryover cooking will continue after removal from heat.
Step 7: Final Seasoning (3 minutes)
Remove the pan from heat.
Stir in the fresh lime juice (2 tablespoons) carefully and gently. The residual heat will warm the lime juice without cooking away its brightness.
Tear fresh cilantro and Thai basil leaves and scatter them over the fish.
Taste the braising liquid and adjust final seasonings if needed. Remember: you can add more seasoning but cannot remove it, so be conservative.
Step 8: Plate and Serve (5 minutes)
For whole fish: Transfer carefully to a shallow serving platter using two fish spatulas or slotted spoons, supporting the fish fully to prevent breaking.
For fillets: Transfer individually to shallow serving bowls using a slotted spoon, supporting from underneath.
Ladle the hot braising liquid and all aromatic pieces over the fish, ensuring each portion receives the flavorful broth.
Arrange thinly sliced fresh Thai red chilies on top for visual appeal and adjustable heat.
Scatter chopped green onions and fresh cilantro over the top.
If desired, top with a small handful of crispy fried shallots for textural contrast.
Serve immediately with jasmine rice and lime wedges on the side.
Expert Tips
Choose the Right Fish: Whole fish should have clear, bright eyes and bright red gills (signs of freshness). For the slow-cooking method, fish with firmer flesh such as sea bass, grouper, snapper, or porgy work best. Delicate fish like sole or flounder may fall apart. For fillets, choose thick-cut pieces (150-200g) that won't dry out during cooking.
Temperature Control is Everything: The key to moist, tender fish is maintaining a gentle simmer, not a boil. Boiling will cause the fish to seize and become tough. The internal temperature should reach exactly 63°C (145°F)—not higher. Use an instant-read thermometer for accuracy.
Basting is Essential: The slow basting of the fish with the hot braising liquid ensures even cooking and develops a glossy, flavorful surface. Don't skip this step—it's what distinguishes slow-cooked fish from merely poached fish.
Tamarind Paste Quality Matters: Use genuine tamarind paste concentrate (available in most Asian markets), not tamarind "flavoring." The concentrate has deeper, more complex sourness that defines the dish. One tablespoon of concentrate equals approximately 3 tablespoons of fresh tamarind pulp.
Whole Fish Provides Superior Flavor: The bones, skin, and head of the fish contribute to the broth's depth and complexity. If you can source a whole fish, the effort is worth it. Ask your fishmonger to scale, gut, and remove the head if you prefer, or tackle it yourself with a sharp knife and some confidence.
Coconut Milk Quality Affects Results: Use full-fat canned coconut milk from reputable Thai brands (Aroy-D, Chaokoh, or Thai Kitchen). Shake the can well before opening. The thick cream at the top shouldn't be skipped—mix it in. "Lite" coconut milk lacks the richness and will result in a less satisfying dish.
Variations
Southern Thai Version with Peanuts: Add 3 tablespoons of ground roasted peanuts to the braising liquid in Step 4. This creates a richer, earthier sauce popular in coastal Southern Thailand. Top with crushed peanuts and crispy fried chilies instead of shallots.
Musaman-Influenced Fish Curry: Add 1 star anise, 3-4 cardamom pods, and ½ cinnamon stick to the aromatics during paste-making. Reduce tamarind to 1½ tablespoons and increase palm sugar to 2 tablespoons. This creates a warmer, more complex spice profile influenced by Musaman curry traditions.
Isaan-Style Spicy Fish: Use 8-10 Thai chilies (seeds included) in the paste instead of 3-4, and add ½ tablespoon of fermented fish curry (nam pla wan). Increase fish sauce to 2½ tablespoons. Top with crushed roasted peanuts, dried chilies, and a squeeze of fresh lime. This Northeastern version is significantly spicier.
Northern Thai Herb Version: Replace half the lemongrass with fresh cilantro stems (about ¼ cup), and add 1 tablespoon of fresh mint. Include extra Thai basil as garnish. This creates a lighter, more herbaceous version popular in Chiang Mai.
Mixed Seafood Braise: Use 300-400g of mixed seafood instead of whole fish: combination of mussels, shrimp, calamari, and fish fillets. Add seafood gradually: mussels first (5 minutes), then fish fillets, then shrimp (final 4-5 minutes). Each ingredient cooks according to its texture.
Storage Instructions
Refrigerator Storage: Thai slow-cooked fish keeps well for 2-3 days in an airtight container. The fish will be fully cooked and safe to eat cold as well as reheated. The braising liquid will gelatin slightly as it cools (from the fish's natural gelatin in bones and skin).
Freezer Storage: Freeze in airtight containers for up to 2 months. The fish can freeze successfully, though texture may become slightly more delicate upon thawing. The braising liquid freezes excellently and can be used as a base for future fish dishes.
Reheating Instructions: Thaw overnight in the refrigerator if frozen. Transfer to a saucepan and reheat gently over low heat for 5-8 minutes, covered with a lid. The gentle heat prevents the fish from drying out. Alternatively, reheat in a 160°C (320°F) oven for 10-12 minutes, covered.
Make-Ahead Options: The aromatic paste can be made up to 3 days ahead and refrigerated in an airtight container. The braising liquid can be prepared (through Step 4) up to 4 hours ahead and kept at room temperature. Add the fish only when ready to serve, as it should be cooked fresh rather than sitting in the broth before service.
Serving Suggestions
Traditional Thai Meal: Serve with jasmine rice and a fresh Thai salad (som tam or larb) on the side
Noodle Course: Serve over soft rice noodles, with the braising liquid ladled over the top
Soup Service: Serve in deep bowls with extra braising liquid for a fish soup experience
Festival Presentation: For whole fish, present on the platter with the head intact for dramatic effect; remove at the table
Light Dinner: Serve with steamed vegetables and jasmine rice for a balanced, healthful meal
Entertaining: Prepare early in the day; reheat gently before serving to impress guests with minimal last-minute cooking
Frequently Asked Questions
Q: Can I use frozen fish for this recipe?
A: Yes, but thaw completely and pat very dry before cooking. Frozen fish has already undergone cellular damage and may release more liquid during cooking. Ensure it's of high quality (IQF—individually quick frozen) to minimize texture degradation. Cooking time remains the same.
Q: My fish broke apart during cooking. What went wrong?
A: Possible causes include: (1) the heat was too high and the fish seized; (2) the fish was overcooked and lost structural integrity; (3) the fish was handled too roughly during cooking or transferring. Solutions: maintain a gentle simmer, use a thermometer, handle fish minimally, and transfer carefully using two fish spatulas supporting from underneath.
Q: Can I substitute the tamarind paste with something else?
A: Tamarind is the signature sour note in this dish. However, lime juice alone can replace it in equal volume (3 tablespoons lime juice instead of tamarind paste), though the flavor will be brighter and less complex. Vinegar is not a good substitute as it lacks tamarind's depth.
Q: What's the difference between slow-cooked and poached fish?
A: Poaching typically refers to cooking in barely simmering liquid, often water or plain stock. Slow-cooked implies a more extended cooking time at lower temperature with richer, more aromatic braising liquid. This recipe is technically a hybrid—poaching in aromatic coconut broth—resulting in deeply flavored, tender fish.
Q: How do I know what internal temperature to target?
A: The USDA recommends fish reach 63°C (145°F) for food safety. At this temperature, the flesh is opaque and flakes easily with a fork, but remains moist and tender. Don't cook higher than 65°C (150°F) or the fish becomes dry and loses appeal.
Affiliate Disclosure
This page contains affiliate links to recommended cookware, ingredients, and specialty items. When you make a purchase through these links, we earn a small commission at no additional cost to you. These recommendations are based on genuine product use and effectiveness in creating authentic Thai recipes.
Shop Recommended Equipment for Thai Slow Cooked Fish →
Ingredient Substitution Guide
Whether you're working around dietary restrictions, allergies, or simply using what's available in your kitchen, these substitutions work well in this thai preparation:
Cod or halibut: Mild, flaky white fish that works in nearly any recipe. Cod is thinner, so adjust cooking time accordingly.
Firm tofu: Press for 30 minutes, then slice or cube. Season with kelp powder or Old Bay for a seafood-adjacent flavor profile.
Cauliflower steaks: Surprisingly good fish substitute for flavor absorption. Cut thick cross-sections and season identically to the fish.
Salmon fillets: Richer and fattier than most white fish. Reduce any added oil and cook for 1-2 minutes longer per inch of thickness.
When substituting, always taste and adjust seasoning as you go. Different proteins and ingredients absorb and carry flavors differently, so what works perfectly with fish may need tweaking with your substitute.
Common Mistakes to Avoid
Even experienced cooks stumble with slow cooked fish. Here are the pitfalls to watch for:
Filling beyond the recommended level: Slow cookers work best when filled between half and three-quarters full. Overfilling prevents proper heat circulation; underfilling can scorch food.
Adding dairy too early: Cream, milk, and cheese can curdle during hours of cooking. Stir in dairy products during the last 30 minutes for a smooth, creamy result.
Not layering ingredients properly: Put dense vegetables on the bottom closest to the heat, then proteins on top. This ensures even cooking since heat rises from the bottom.
Using lean cuts of meat: Lean cuts dry out during long cooking times. Choose well-marbled, connective tissue-rich cuts that become tender and silky after hours of low heat.
Lifting the lid during cooking: Each peek adds 15-20 minutes to cooking time as heat and moisture escape. Resist the urge to check until the last hour of cooking.
Avoiding these common errors will dramatically improve your results. The difference between good and great often comes down to these small details that many cooks overlook.
Make-Ahead and Meal Prep Tips
This recipe is excellent for meal preparation. Here's how to get the most out of your batch cooking:
Refrigerator storage: 1-2 days in an airtight container. White fish is delicate and doesn't reheat as well as other proteins. Gently warm at 275°F or repurpose into fish cakes or salads.
Freezer storage: Up to 2 months. Freeze raw fish in marinades for quick weeknight cooking. The fish marinates as it thaws, saving time and boosting flavor.
Batch cooking strategy: Cook fish fresh when possible rather than meal prepping. If you must prep ahead, slightly undercook and store with a squeeze of lemon.
Reheating for Best Results
The biggest mistake in meal prep is aggressive reheating that overcooks the protein. White fish is delicate and doesn't reheat as well as other proteins. Gently warm at 275°F or repurpose into fish cakes or salads. For packed lunches, consider bringing components separately and assembling fresh. The texture stays better when sauces and garnishes are added at eating time rather than stored together.
Seasonal Adaptations
Thai cooking balances flavors with seasonal awareness. Spring brings the mango harvest for fresh salads and sticky rice desserts alongside fragrant lemongrass at its most aromatic. Summer's intense heat calls for cooling som tum (papaya salad), refreshing tom yum with seasonal herbs, and coconut-based curries. Autumn means fresh galangal, kaffir lime leaves, and the rice harvest season. Winter brings milder temperatures perfect for rich northern Thai curries like khao soi.
Adapting this recipe to the seasons doesn't just improve flavor — it often reduces cost since in-season produce is more abundant and affordable. Visit your local farmers' market for the freshest seasonal ingredients that will elevate this dish.
Scaling This Recipe
Need to feed more people or cooking for just yourself? Here's how to adjust:
If feeding a crowd, consider cooking components separately and assembling at serving time. This gives you more control and keeps textures intact.
For doubling, use a larger vessel rather than cooking two batches when possible. Proteins cook more evenly in a single batch with proper spacing.
Seasoning does not scale linearly. When doubling, start with 1.5 times the seasoning and adjust to taste. When halving, use about 60% of the original amount.
Cooking times change when scaling up. A doubled recipe in the same vessel needs 15-25% more time, not double. Monitor closely and use a thermometer.
As a general rule, taste frequently when scaling. Your palate is the best guide for getting the balance right at any batch size.
*Published: December 20, 2025 | Last updated: January 19, 2026*