Soups & Stews
This authentic Thai tom kha soup recipe delivers the perfect balance of creamy coconut, tangy lime, and aromatic Thai spices in every spoonful. The secret lies in fresh galangal, kaffir lime leaves, and lemongrass—ingredients that transform ordinary broth into a fragrant, restaurant-quality experience.
I’ve perfected this version over years of testing, ensuring the signature crisp celery crown adds both texture and visual appeal.
The soup begins with a fragrant base of ginger, galangal, and lemongrass, simmered until their flavors meld into the coconut milk. Chicken (or tofu for a vegetarian version) is poached gently to stay tender, while fish sauce and lime juice create the signature tangy depth.
The broth reduces to a velvety consistency, rich with umami and balanced by a touch of sweetness.
What sets this recipe apart is the attention to authenticity—using pandan leaves for subtle floral notes and adjusting saltiness precisely with fish sauce. The crisp celery crowns add a satisfying crunch, while Thai basil and lime garnishes elevate each bowl.
This isn’t just soup; it’s a taste of Thailand’s vibrant street food culture.
Perfect for cozy nights or impressing guests, this recipe delivers restaurant-quality results in under an hour. The instructions are clear, the flavors are bold, and the process is foolproof—once you try it, you’ll never settle for anything less. Let’s get cooking!
Ingredients for authentic thai tom kha soup
Fresh galangal, kaffir lime, and lemongrass transform ordinary broth into restaurant-quality Thai tom kha soup.
| Ingredient | Amount | Notes |
|---|---|---|
| Chicken Breast 🍗 | 1 ½ lb | Boneless, skinless, cut into bite-sized pieces |
| Coconut Milk 🥥 | 1 can | Full-fat, 13.5 oz can (not carton) |
| Galangal 🌿 | 3 inches | Fresh, peeled, sliced thinly (about 2 oz) |
| Ginger 🧄 | 2 inches | Fresh, peeled, sliced thinly (about 1 oz) |
| Lemongrass 🌱 | 2 stems | Fresh, bruised, cut into 2-inch pieces |
| Kaffir Lime Leaves 🍋 | 4 whole | Fresh, torn into large pieces |
| Pandan Leaves 🌿 | 2 whole | Fresh, tied into bundle |
| Fish Sauce 🍶 | 2 tbsp | Red Boat brand preferred |
| Lime Juice 🍋 | 0.3 cup | Freshly squeezed |
| Palm Sugar 🍯 | 2 tbsp | Or substitute brown sugar |
| Thai Chili Peppers 🌶️ | 2 whole | Bird's eye or Thai bird's eye |
| Celery 🧅 | 2 whole | For crisp crown garnish |
| Thai Basil 🌿 | ¼ cup | Fresh, chopped |
| Vegetable Oil 🫒 | 2 tbsp | For poaching chicken |
| Salt 🧂 | 1 tsp | Diamond Crystal preferred |
The galangal and ginger are the soul of this soup—look for fresh, vibrant roots at Asian markets, not the dried powder. Thai Spice or 99 Ranch often carry them pre-sliced, but if buying whole, peel and slice thinly with a mandoline. Kaffir lime leaves should be fragrant and bright green; discard any that smell musty. For the coconut milk, full-fat canned versions (like Aroy-D) give the richest texture—avoid the carton kind. Lemongrass needs to be bruised (lightly pounded) to release its oils, and the Red Boat fish sauce is non-negotiable for authentic umami.
No galangal? Substitute ginger at double the amount, though it won’t be identical. Running out of kaffir lime leaves? Bay leaves work in a pinch, but reduce to half the quantity. Palm sugar unavailable? Brown sugar or coconut sugar are fine, though the flavor will differ slightly. The Thai chilies can be adjusted to taste—remove seeds for less heat. For the celery crowns, use crisp stalks and slice into 1/4-inch rounds; blanch in boiling water for 30 seconds to crisp up before garnishing. The pandan leaves add a subtle floral note—skip them if unavailable, but don’t substitute with vanilla.
Fresh galangal and ginger keep for 2 weeks in the fridge wrapped in damp paper towels. Kaffir lime leaves last 1 week sealed in a bag. The soup reheats beautifully—simmer gently for 5-10 minutes to restore creaminess. For meal prep, store the broth separately from the chicken and celery crowns to maintain texture. The celery crowns should be added fresh when serving for that satisfying crunch. Leftovers keep 3 days refrigerated or 3 months frozen.
Why You'll Love This Recipe
- Foolproof Ingredient List: I swear by this combo—just chicken, coconut milk, and those three aromatic roots (galangal, ginger, lemongrass). No weird substitutions needed. The galangal alone makes it taste like a proper Thai kitchen, not some watered-down version.
- One-Pot Magic: Honestly, it’s the kind of soup that forgives mistakes. Toss everything in a single pot, simmer, and walk away. The coconut milk thickens beautifully, and the chicken falls apart like it’s been braising for hours—not just 20 minutes.
- Crowd-Pleaser Any Day: Between us, this is the soup that gets my picky eaters to clear their plates. The creamy coconut balances the spicy kick (if you add chili), and the ginger-lemongrass aroma fills the whole house. Perfect for game day, sick nights, or when your partner’s “I don’t feel like cooking” phase hits.
- Leftovers That Taste Better: Here’s what sold me—this soup actually improves the second day. The flavors meld, the broth gets richer, and reheating it? Zero effort. I make a double batch on Sundays and eat it all week, no takeout needed. (Yes, even on a Tuesday night.)
Step-by-step instructions for authentic tom kha soup
Master this classic Thai soup with perfectly balanced coconut cream, aromatic herbs, and a signature crisp celery crown.
Prepare the Chicken and Aromatics
Cut the 1.5 lb chicken breast into 1-inch bite-sized pieces and set aside. In a large pot, heat 2 tbsp vegetable oil over medium-high heat until shimmering. Add the chicken in a single layer and cook undisturbed for 3-4 minutes until the edges turn opaque. This creates a light crust that prevents the chicken from becoming rubbery later.
While the chicken cooks, prepare the aromatic base. In a separate bowl, combine the 3 inches galangal (sliced), 2 inches ginger (sliced), 2 stems lemongrass (bruised and cut), 4 whole kaffir lime leaves (torn), and 2 whole pandan leaves (tied into a bundle). These ingredients form the soul of the soup—don't skip the bruising of lemongrass, as it releases essential oils that deepen the flavor.
Build the Spiced Coconut Broth
Once the chicken is cooked, remove it from the pot and set aside. In the same pot, add 1 can coconut milk and bring to a gentle simmer over medium heat. Add the prepared aromatics along with 2 whole Thai chili peppers (left whole for easy removal later) and 2 tbsp palm sugar. Simmer for 8-10 minutes, stirring occasionally, until the mixture becomes fragrant and slightly thickened.
Here's where the authentic balance comes in: taste the broth and adjust seasoning. The coconut should be rich but not overpowering, and the sweetness should complement—not dominate—the heat. If needed, add 1 tsp salt or more palm sugar to taste. The broth should coat the back of a spoon with a velvety texture.
Finish with Fish Sauce and Lime
Return the chicken to the pot and add 2 tbsp fish sauce and 0.3 cup lime juice. Simmer for an additional 5-7 minutes until the chicken is fully cooked through and the flavors meld together. The fish sauce should enhance the umami depth while the lime brightens the coconut richness. You'll notice the soup develop a complex aroma—this is your signal that the flavors are harmonizing.
Remove the pandan bundle and chili peppers (unless you prefer heat). The soup is now ready for the final touch: stir in 0.25 cup chopped Thai basil just before serving. This herb should be added last to preserve its vibrant flavor and aroma.
Serve with Crisp Celery Crowns
For the signature presentation, prepare the celery crowns by slicing the 2 whole celery into ½-inch thick rounds. Blanch them in boiling water for 30 seconds, then immediately shock in ice water to maintain crispness. Arrange these on top of each serving for both visual appeal and texture contrast.
Ladle the soup into bowls, ensuring each serving gets its crisp celery crown. The contrast of the cool, crisp celery against the warm, creamy broth is what makes this dish truly special. Serve immediately while the aromatics are at their peak, and enjoy the perfect balance of coconut, spice, and herbal brightness that defines authentic Tom Kha.
Pro Tips For Making Authentic Thai Tom Kha Soup
- BLANCH THE CHICKEN FIRST: Skip the raw chicken straight into the pot—it’ll turn rubbery. Instead, poach the chicken in lightly salted water for 5-6 minutes until just cooked through, then shred it. This keeps it tender while letting the broth absorb its flavor later.
- PEEL GALANGAL THINLY: Thick slices of galangal just sit there. Use a peeler to shave off paper-thin layers—it releases aroma without overpowering. (Yes, even if you’re impatient like me.) Toss them in early and let the broth work its magic.
- LOW AND SLOW WITH COCONUT: Coconut milk burns faster than you think. Once you add it, drop the heat to a bare simmer—just enough to see tiny bubbles at the edges. Walk away for 10 minutes; rushing this step turns creamy into greasy.
- TOAST THE LEMONGRASS: Char the lemongrass stems over a flame for 30 seconds before adding to the pot. The smoky depth cuts through the richness of the coconut milk and balances the galangal’s bite. (Your future self will notice the difference.)
Serving suggestions for this authentic thai tom kha soup
Garnish Like a Pro
Fresh Thai basil should be added right before serving—its anise-like aroma is the finishing touch that makes this soup sing. I like to sprinkle it generously on top, along with a few lime wedges for guests to squeeze in.
For extra flair, add crisp fried shallots (store-bought or homemade) that add a delicate crunch and nutty depth. 🌿
Crisp Celery Crowns
The signature celery crowns are non-negotiable—they provide that perfect textural contrast. Slice the celery into ½-inch rounds, blanch for 30 seconds, then shock in ice water to maintain crispness.
Arrange them in a circular pattern on top of each bowl for that restaurant-quality presentation. Pro tip: Use crisp celery stalks—avoid any with soft spots.
Rice Pairing
This soup pairs perfectly with jasmine rice or steamed white rice. I recommend serving it in small bowls with a side of rice so guests can scoop up every last drop of that creamy broth.
For extra authenticity, try sticky rice if you're feeling adventurous—it's a classic Thai combination that adds a delightful chewiness. 🍚
Extra Toppings
Want to customize? Top with crispy fried garlic for a savory crunch or toasted coconut flakes for a sweet contrast. A sprinkle of crushed peanuts adds protein and texture, while bean sprouts introduce a fresh, crunchy element. Keep toppings simple—you don’t want to overpower the soup’s delicate balance.
Beverage Pairings
A Thai iced tea or jasmine green tea complements the soup’s creamy, spicy notes beautifully. For something stronger, a light lager like Singha cuts through the richness, while a dry Riesling enhances the coconut and lime flavors. Avoid heavy beers or sweet wines—they’ll clash with the dish’s bright acidity. 🍷
Meal Prep Tips
Store the soup (without celery crowns) in an airtight container for up to 3 days in the fridge. Reheat gently over low heat, stirring in a splash of coconut milk if it separates.
Keep the celery crowns separate and add them fresh when serving to maintain their crisp texture. For freezing, omit the basil and lime—add them fresh after reheating. ❄️
Nutrition facts
Frequently asked questions
Can I make this soup vegetarian?
Replace the chicken with 14 oz firm tofu (pressed and cubed) or 12 oz mushrooms (like shiitake or oyster). Simmer the tofu or mushrooms in the coconut broth for 8-10 minutes until tender. For extra umami, add 1 tbsp soy sauce when seasoning. The broth will still be rich and flavorful—just adjust the fish sauce to 1 tbsp to balance the vegetarian protein.
Why does my coconut milk separate?
This happens when the soup sits too long or cools too quickly. To fix it, gently reheat over low heat and stir in 1-2 tbsp additional coconut milk to restore creaminess. For prevention, keep the soup at a gentle simmer (never boil) and avoid rapid temperature changes. The pandan leaves help stabilize the broth—don't skip them!
What if I can't find galangal?
Use double the ginger (4 inches) as a substitute, but the flavor won't be identical. For a closer match, mix 2 inches ginger + 1 tsp ground coriander. Galangal has a citrusy, peppery note that ginger lacks—if possible, try finding it at Asian markets. The soup will still taste great, but the aroma will be slightly different.
Can I make this soup spicier?
Yes! Add 1-2 extra Thai chilies (seeds in for maximum heat) or ½ tsp red chili flakes when simmering the broth. For a smoky kick, stir in ½ tsp smoked paprika at the end. Remember: the heat should complement, not overpower, the coconut and lime. Taste as you go—you can always adjust!
How do I make it less sour?
If the lime is too sharp, reduce it to 0.2 cup juice next time. For an already-made batch, stir in ½ tsp palm sugar or 1 tsp coconut cream to mellow the acidity. The fish sauce also adds depth—if the broth tastes flat, add ½ tsp more to balance the flavors. Taste frequently while cooking!
