Soups & Stews
This authentic Thai Tom Kha soup recipe brings the fragrant, creamy, and tangy flavors of Thailand right to your kitchen. š The secret lies in the perfect balance of coconut milk, lemongrass, galangal, and lime juiceāeach element working together to create a broth thatās both comforting and vibrant.
Unlike many Westernized versions, this recipe stays true to its roots while being approachable for home cooks.
The soupās signature crispy celery crowns add a delightful textural contrast, while the optional proteināwhether chicken or tofuāabsorbs the aromatic broth beautifully. Traditional garnishes like fresh cilantro, Thai basil, and a squeeze of lime elevate every spoonful, making it a dish that feels both rustic and refined.
The key is simmering the broth low and slow to develop deep, layered flavors without bitterness.
What youāll end up with is a bowl of soup thatās creamy yet light, tangy yet balanced, and spicy just enough to wake up your palate. The crispy celery crowns add a satisfying crunch that cuts through the richness, while the lemongrass-infused broth delivers that unmistakable Thai aroma.
This is the kind of dish that transforms a simple meal into an experienceāone thatās worth the effort.
Serve it with steamed jasmine rice to soak up every last drop of that fragrant broth, or enjoy it as-is for a lighter yet deeply satisfying meal. The recipe is designed to be adaptable, so you can adjust the spice level or protein to suit your taste. Letās get cooking!
Ingredients for authentic thai tom kha soup
These fragrant ingredients create a creamy, tangy Thai masterpiece with crispy celery crowns for texture.
| Ingredient | Amount | Notes |
|---|---|---|
| Coconut Milk š„„ | 1 can | Full-fat, unsweetened preferred |
| Galangal Slices šæ | 3 inches | Fresh, peeled, sliced thin |
| Lemongrass Stalks šæ | 3 whole | Bruised, cut into 2-inch pieces |
| Chicken Breast š | 1 lb | Boneless, skinless, cubed |
| Firm Tofu š„¬ | 1 lb | Extra-firm, pressed and cubed |
| Kaffir Lime Leaves š | 4 whole | Bruised for aroma |
| Lime Juice š | ½ cup | Freshly squeezed |
| Fish Sauce š¶ | 1 tbsp | Red Boat preferred |
| Palm Sugar šÆ | 2 tbsp | Or substitute brown sugar |
| Thai Chili Paste š¶ļø | 1 tbsp | Adjust for heat preference |
| Celery Stalks š§ | 4 whole | For crispy crowns |
| Vegetable Oil š« | ¼ cup | For frying celery |
| Fresh Cilantro šæ | ¼ cup | Chopped, for garnish |
| Thai Basil šæ | ¼ cup | For garnish |
| Salt š§ | 1 tsp | To taste |
Galangal is the soul of this soupāfind it at Asian markets or sub with extra ginger if needed. Fresh lemongrass and kaffir lime leaves are non-negotiable for that authentic aroma. Thai Kitchen or Mekhala brands have great pre-sliced galangal if you're in a rush. The coconut milk should be full-fat for richness, and Red Boat fish sauce is worth the splurge for that umami depth. Palm sugar adds just the right sweetness without overpowering.
No galangal? Double the ginger and add 1 tsp coriander for a close substitute. Using tofu instead of chicken? Press it for 20 minutes first to remove excess water. The Thai chili paste can be swapped for sriracha if you're in a pinch, but Maesri or Nam Prik Pao brands are ideal. For the crispy celery crowns, use thick celery stalksāthe outer leaves add extra flavor when fried. Fresh herbs are key, so grab Thai basil and cilantro from the Asian section if possible.
The broth keeps 3-4 days in the fridge, but the celery crowns are best eaten fresh. Store the broth separately and reheat gently to preserve texture. Freeze portions of the broth without celery for up to 3 months. For extra convenience, prep the celery crowns ahead and keep them in the freezerājust fry from frozen. The soup tastes even better the next day as flavors meld.
Why You'll Love This Recipe
- One-Pot Wonder: I swear by this for lazy nightsāthe galangal and lemongrass simmer right in the broth, so no extra pots to wash. Just toss everything in, let it bubble, and youāve got a fragrant, creamy soup without the fuss.
- Creamy Yet Zesty: That coconut milk makes it rich, but the galangal and lime juice cut through the richness with a bright, tangy kick. Honestly, the balance is what makes it irresistibleāsmooth one minute, zingy the next.
- Dietary Flexibility: Chicken or tofu? Both work perfectly, and the brothās bold flavors hide any "off" notes. Iāll make it with chicken for guests, then swap to tofu for a lighter weeknight mealāsame soup, different game.
- Leftovers That Shine: This soup actually tastes better the next day. Between us, Iāve reheated portions for lunch three times and never gotten tired of it. Plus, the galangalās earthy notes deepen overnightāproof that patience pays off.
Step-by-step instructions for authentic Tom Kha soup
Let's bring this fragrant Thai classic to life with its signature coconut-lemongrass broth and crispy celery crowns.
š³ Step 1: Create the Crispy Celery Crowns
Heat the 0.25 cup vegetable oil in a small skillet over medium heat. Cut the 4 whole celery stalks lengthwise into quarters, keeping the base intact to form crowns. Fry for 3-4 minutes until the edges turn golden brown and crispy - you'll smell that unmistakable celery aroma. Remove and set aside on paper towels to drain excess oil.
Here's the thing - these crispy crowns add incredible texture contrast to the silky broth. Don't skip this step, even though it seems simple. The celery will soften when added to the soup, but those crispy edges will remain a delicious surprise in every bite.
š³ Step 2: Build the Fragrant Broth Base
In a large pot, combine the 1 can coconut milk, 3 inches galangal slices, 3 whole lemongrass stalks (bruised), and 4 whole kaffir lime leaves. Bring to a gentle simmer over medium-low heat for 10 minutes, allowing the aromatics to infuse the coconut milk. You'll notice the broth develop a pale, creamy color with subtle golden flecks from the galangal.
This is where the authentic flavors develop. The galangal adds a peppery, citrusy depth while the lemongrass brings its signature floral aroma. Don't rush this step - patience here ensures maximum flavor extraction. After 10 minutes, strain out the solids using a fine-mesh sieve, pressing gently to extract all the flavor.
š³ Step 3: Cook the Protein and Season
Return the strained broth to the pot and add the 1 lb chicken breast (cubed), 1 lb firm tofu (cubed), 0.5 cup lime juice, 1 tbsp fish sauce, 2 tbsp palm sugar, and 1 tbsp Thai chili paste. Bring to a gentle simmer and cook for 10-12 minutes until the chicken reaches 165°F internally and the tofu is heated through.
Taste the broth now - it should be balanced between sweet, sour, spicy, and umami. The chicken should be tender with just a hint of resistance when pierced. If the soup needs more heat, add a pinch of salt or a splash more lime juice. This is your chance to adjust the flavors before final assembly.
š„ Step 4: Finish and Garnish
Remove from heat and gently stir in the crispy celery crowns. Ladle the soup into bowls, being careful to distribute the celery evenly. Garnish each serving with 0.25 cup fresh cilantro and 0.25 cup Thai basil, adding those vibrant green accents that make the dish visually stunning.
Serve immediately with steamed jasmine rice on the side. The contrast between the crispy celery, silky broth, and tender proteins creates a perfect balance in every spoonful. Don't forget to add a sprinkle of extra chili paste on the side for those who want more heat.
Pro Tips For Making Authentic Thai Tom Kha Soup
- BLEND GALANGAL FINE: I learned this the hard wayāchopping galangal too thick leaves a chunky, unbalanced broth. Pulse it in a food processor until itās a paste, then fry it with the lemongrass until fragrant. This releases the ginger-like heat evenly, not in random bursts.
- SIMMER COCONUT LOW: After adding coconut milk, drop the heat to the lowest setting you can tolerate. I used to rush this, and the soup would split or taste raw. Let it bubble gently for at least 15 minutesāitās the only way to marry the flavors without curdling.
- SEAR TOFU FIRST: Skip the raw tofu in the brothāit soaks up flavor like a sponge but never develops texture. Pan-fry the tofu until golden and crispy before adding it back to the soup. It adds a satisfying bite and keeps the dish from feeling mushy.
- USE CHICKEN BONE BROTH: Store-bought chicken broth lacks depth, and watered-down coconut milk wonāt save it. If youāre starting with chicken breast, poach it in water with a bay leaf and black pepper for 20 minutes first, then use that liquid as your base. The difference in richness is night and day.
Creative variations of this dish
Spicy Coconut Shrimp
Swap the chicken for 1 lb large shrimp, peeled and deveined. Add them to the simmering broth in the final 5 minutes of cooking to prevent overcooking. Boost the Thai chili paste to 2 tbsp and add 1 tbsp shrimp paste (like Thai Kitchen brand) for extra depth.
Serve with crispy shallots instead of celery crowns for a seafood twist that still honors the soup's creamy, tangy base. š¶ļø
Vegetarian Mushroom
For a fully plant-based version, skip the chicken and tofu, then add 1 lb mixed mushrooms (shiitake and oyster work best) and 1 cup bamboo shoots. Increase the Thai chili paste to 2 tbsp and add 1 tbsp soy sauce for umami.
The mushrooms absorb the broth beautifully, creating a hearty, earthy variation that still feels authentic. š
Creamy Coconut Curry
Transform this into a curry by adding 1 can additional coconut milk and 1 tbsp Thai red curry paste (like Maesri brand) when building the broth base. Stir in 1 cup diced bell peppers and 1 cup chopped tomatoes during the final 5 minutes of cooking.
Serve with jasmine rice and top with fried shallots for a richer, more substantial dish. š„„
Herb-Infused Chicken
Take the classic version to the next level by adding 1 tbsp coriander seeds and 1 tsp fennel seeds to the broth base while simmering. Toast the seeds in a dry pan for 1 minute until fragrant, then grind them with a mortar and pestle before adding to the pot.
The extra herbs add complexity that pairs perfectly with the chicken. Garnish with extra Thai basil for a fragrant finish. šæ
Spicy Tom Kha Soup Cake
For a unique twist, turn the broth into a soup cake by mixing 1 cup cooked rice into the finished soup. Pour into a greased loaf pan and chill for 4 hours until set.
Slice and serve cold or at room temperature. The texture becomes almost like a savory rice pudding with all the familiar flavors. Perfect for meal prep or a unique appetizer! š°
Smoky Galangal Boost
Add depth by charring the galangal slices before using them. Lightly torch or sear them in a dry pan until slightly blackened, then slice thinly and add to the broth.
This smoky note complements the coconut beautifully and adds a restaurant-quality dimension. Just be sure to strain out all charred pieces before serving. š„
Nutrition facts
Frequently asked questions
Can I make this soup without galangal?
Yes, but the flavor will differ. Replace 3 inches galangal with 2 inches ginger + 1 tsp coriander seeds (toasted and ground). For extra depth, add 1 tsp lemongrass paste if fresh isn't available. The soup will still taste delicious but lose its signature peppery-citrusy note.
How spicy should this soup be?
The recipe uses 1 tbsp Thai chili paste for a mild-medium heat. For spicier versions, increase to 2 tbsp or add fresh chili slices. The lime juice and coconut milk naturally balance the heat, so don't be afraid to adjustāThai soups are all about personal spice preference!
Can I use regular ginger instead of galangal?
While regular ginger works in a pinch, galangal's unique citrusy-peppery flavor is irreplaceable. If substituting, use double the amount of ginger and add 1 tsp lime zest to mimic galangal's brightness. The texture will be slightly different, but the overall taste remains authentic.
Why does my soup taste bitter?
Bitterness usually comes from over-simmering the broth or using old coconut milk. Simmer the broth for no longer than 10 minutes and use fresh, full-fat coconut milk. If it's too late, balance the bitterness with extra lime juice or a pinch of sugar. Fresh herbs like cilantro also help brighten the flavor.
How do I store leftovers?
Store the broth (without celery crowns) in an airtight container for 3-4 days in the fridge. Reheat gently on low heat, stirring occasionally. The celery crowns are best eaten fresh, but you can reheat them separately in a dry pan for 1-2 minutes. Freeze broth portions for up to 3 months.
