Thai fish soup, often made in a clear tom yum–style broth, pairs tender fish with lemongrass, galangal, lime, fish sauce, and chiles. The result is fragrant, sour, salty, and gently spicy rather than heavy, and the fish cooks directly in the broth for a simple one-pot meal. Thai soups vary by region and household; this version keeps the broth clear and offers practical swaps for harder-to-find aromatics.
Ingredients
- 6 cups (1.4 L) unsalted fish stock or low-sodium chicken stock
- 2 lemongrass stalks (about 2 oz / 55 g), tough outer layers removed and stalks cut into 2-inch (5 cm) lengths
- 1 piece galangal, about 1 inch (20 g), thinly sliced
- 4 makrut lime leaves (about 2 g), torn once to release their aroma
- 2 medium shallots (about 50 g), thinly sliced
- 2 to 3 Thai bird’s-eye chiles (about 5 g), lightly crushed; use fewer for a milder soup
- 6 oz (170 g) oyster or button mushrooms, sliced
- 1 medium tomato (about 150 g), cut into wedges
- 1 lb (450 g) firm white fish fillets, such as cod, haddock, or snapper, cut into 1-inch (2.5 cm) pieces
- 2 tbsp (30 ml) fish sauce
- 1 tsp (4 g) granulated sugar
- 3 tbsp (45 ml) fresh lime juice, plus more to taste
- ½ cup (15 g) loosely packed cilantro leaves and tender stems, roughly chopped
- ½ cup (12 g) Thai basil leaves, loosely packed
- ¼ tsp (1.5 g) kosher salt, optional, to adjust the finished broth
Instructions
- Prepare the aromatics and fish. Trim the lemongrass, slice the galangal and shallots, and prepare the lime leaves, chiles, mushrooms, and tomato. Cut the fish into similarly sized pieces so it cooks evenly. Pat it dry and keep it refrigerated while you start the broth. Galangal, lemongrass, and makrut lime leaves are primarily there to perfume the soup; diners can leave the tougher pieces in the bowl rather than eat them.
- Build the fragrant broth. Pour the stock into a medium pot and add the lemongrass, galangal, lime leaves, shallots, and crushed chiles. Bring it just to a simmer over medium-high heat, then lower the heat and simmer gently for 10 minutes. Avoid a hard boil, which can make the broth taste harsh and cause it to reduce too quickly. The stock should smell citrusy and aromatic by the end of this step.
- Cook the vegetables. Add the mushrooms and tomato wedges. Keep the broth at a gentle simmer for 4 minutes, until the mushrooms begin to soften and the tomato edges start to loosen. Taste a spoonful of broth at this point, but save the final lime adjustment until the heat is off; lime juice tastes fresher when it is not boiled.
- Poach the fish safely. Slide the fish pieces into the simmering broth and stir once, gently, to separate them. Cook for about 4 to 6 minutes, depending on their thickness, until the centers are opaque and the fish flakes easily. Check the thickest piece with a food thermometer: the USDA FSIS safe minimum internal temperature for fish is 145°F (63°C). Keep the liquid below a rolling boil so the fish stays in neat, tender pieces.
- Season and finish. Turn off the heat. Stir in the fish sauce, sugar, and 3 tablespoons (45 ml) lime juice, then add the cilantro and Thai basil. Taste carefully and adjust with more lime for sharper sourness, fish sauce for saltiness, or a little of the optional salt if needed. If you want more heat, add another crushed chile and let it sit in the hot broth for a minute before serving.
- Ladle into bowls. Distribute the fish, vegetables, and broth evenly. Offer extra lime wedges and herbs at the table. The soup is best served hot, soon after the fish finishes cooking.
Tips
- Choose fish that holds its shape. Cod, haddock, snapper, pollock, and other firm white fish work well. Very thin fillets can break apart when stirred, while oily fish such as salmon give the broth a richer flavor. If using frozen fish, thaw it safely in the refrigerator and pat it dry before cutting.
- Know the aromatic substitutes. Galangal has a sharper, piney citrus character than ginger; use the same amount of fresh ginger if galangal is unavailable, knowing the soup will taste warmer and less distinctive. Makrut lime leaves are especially fragrant; if you cannot find them, add a few wide strips of lime zest and remove them before serving. Zest gives a simpler citrus aroma, not an exact match.
- Control chile heat gradually. Bird’s-eye chiles can be quite hot, and crushing them releases more heat than leaving them whole. Start with one or two, then add more after tasting. For a gentler soup, leave the chiles whole while simmering and remove them before ladling.
- Balance at the end, not by guesswork. Fish sauce brands and stocks vary in saltiness, and limes vary in acidity. Add the fish sauce and lime in the listed amounts, taste the broth, and adjust in small additions. If the broth seems too sharp, a pinch of sugar can round it out; adding more stock also softens strong seasoning.
Serving Suggestions
Serve the soup as a light main course with steamed jasmine rice. You can put rice in each bowl and ladle the soup over it, or serve rice on the side so everyone can choose how much broth to add. Plain rice is useful here because it absorbs the sour, aromatic liquid without competing with the herbs and fish.
For a fuller meal, pair it with a simple vegetable dish, such as stir-fried greens or steamed vegetables, and offer lime wedges, extra cilantro, and sliced chiles at the table. Keep the additions separate rather than stirring in a large amount of chile or lime before serving; diners can adjust their own bowls. If serving as a first course, use smaller bowls and follow it with rice and a mild vegetable or noodle dish.
Variations
Make it milder. Use one whole chile or omit the chiles, then serve sliced chile separately. The soup will still have its lemongrass, lime, and herb character, though it will lack some of the lively heat associated with many tom yum–style versions.
Add coconut milk. For a richer, creamier variation, replace 1 cup (240 ml) of the stock with 1 cup (240 ml) unsweetened coconut milk. Stir it in after the aromatics have simmered and bring the liquid back to a gentle simmer before adding the mushrooms and fish. This changes the clear broth into a creamy one and softens the sharpness of the lime and chile.
Use other seafood. Peeled shrimp, squid, or mussels can be used instead of some or all of the fish, but their cooking times differ. Add shrimp shortly before the fish would go in and cook until opaque; add mussels earlier and discard any that do not open. If mixing seafood, check each type for doneness rather than assuming all pieces finish together.
Make it more filling. Add 4 oz (115 g) rice noodles, cooked separately according to their package directions, to individual bowls just before serving. Keeping the noodles separate prevents them from soaking up too much broth if the soup is not eaten right away. Add extra stock if you want more liquid for a noodle-heavy bowl.
Storage and Reheating
For food safety, refrigerate leftovers within 2 hours of cooking. Transfer the soup to a shallow, covered container so it cools promptly, and keep it refrigerated for 3 to 4 days. The fish may become a little firmer after storage, and the herbs will lose their fresh aroma, so add fresh cilantro or basil when serving leftovers if you have some.
Reheat only the portion you plan to eat in a saucepan over medium-low heat, stirring gently until steaming throughout. The USDA FSIS recommends reheating leftovers to 165°F (74°C); check the broth with a food thermometer and avoid prolonged boiling, which can break up the fish. A microwave also works: cover the bowl loosely, heat in short intervals, and stir carefully between intervals so the soup warms evenly. For longer storage, freeze in a suitable airtight container, leaving room for expansion. Thaw overnight in the refrigerator and reheat to 165°F (74°C); fish texture may be softer after freezing.
Frequently Asked Questions
What kind of fish is best for Thai fish soup?
Choose a firm, mild fish that can be cut into pieces and poached without falling apart. Cod, haddock, snapper, and pollock are convenient options. Freshness and thickness matter more than the exact species: cut the pieces evenly and check the center of the thickest one for doneness.
Can I make the broth ahead?
Yes. Simmer the stock with the lemongrass, galangal, lime leaves, shallots, and chiles, then strain or leave the aromatics in and refrigerate the broth promptly. When ready to serve, bring it to a simmer, cook the vegetables, add the fish, and finish with lime and herbs. Cooking the fish at the last minute gives it a better texture.
Can I use ginger instead of galangal?
Yes. Use an equal amount of sliced fresh ginger. It is easier to find and works well as an aromatic, but its flavor is warmer and less citrusy than galangal, so the finished soup will be similar in spirit rather than identical. Avoid powdered ginger here because it can cloud the broth and tastes different.
Is Thai fish soup supposed to be very spicy?
Not necessarily. Heat depends on the number and type of chiles, and home versions vary. Start with one chile, taste the broth after it simmers, and serve more on the side. The soup should still taste balanced with sour lime, savory fish sauce, and fragrant herbs even when made mild.
Why did my fish fall apart?
Small pieces, vigorous boiling, and repeated stirring can make fish break up. Cut pieces about 1 inch (2.5 cm) wide, keep the broth at a gentle simmer, and stir only enough to separate them when they go into the pot. Some flaking is normal, but the fish should remain in recognizable tender pieces.
Can I make this soup without fish sauce?
For a fish-free seasoning, use light soy sauce in small amounts and adjust to taste; it brings saltiness but a different, less distinctly Thai flavor. A vegetarian mushroom seasoning can also add savoriness. Check that the stock and any seasoning you use suit your dietary needs, and make the final adjustment after the broth has simmered.
Related
- Portuguese Cabbage Soup with Beans and Sausage Recipe
- Portuguese Collard Green Soup with Potatoes and Chouriço
- Portuguese Beef Stew with Chorizo: A Slow-Simmered Recipe
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).