Creamy, spicy, and slightly sour, this homemade Tom Kha Gai Soup tastes like it came from your favorite Thai restaurant! A comforting coconut milk broth is flavored with rich aromatics like lemongrass, galangal (similar to ginger), kaffir lime leaves, shallots, fish sauce, and fresh lime juice.
You might have to visit your local Asian grocery store to pick up a few ingredients, but overall this is a fast and easy soup recipe that’s perfect for chilly evenings!
“This was so absolutely amazing! First time making this at home and just wow! I froze the lime leaves and lemongrass to use for next time since I made a special trip to buy.” – Vivian, So Much Food reader
Table of contents

This Might Just Be My Favorite Soup EVER
Tom kha gai (thai coconut chicken soup) is probably one of my favorite soups of all time. It’s the perfect blend of all the things I like: spice, creaminess, tart acid, savory flavor, and texture.
Never tried tom kha gai before? It’s a traditional soup in Thai cooking that’s considered a ‘hot and sour’ soup (mostly from the fresh lime juice) with a base of broth and coconut milk. You will usually find a mixture of chicken and mushrooms in the soup, but also shrimp like in this easy recipe.
The trick to making this soup taste phenomenal is to use the right ingredients. Chances are you’ll need to head to your local Asian market or well-stocked grocery store for some of the ingredients. Substitutions can make a good soup, but to really make this the best soup you’ll need the traditional ingredients.
What’s the difference between Tom Kha and Tom Yum soup?
Both of these beloved Thai soups are similarly aromatic, but Tom Yum is broth based and quite spicy! Tom Kha Gai is a little milder and I absolutely love the creaminess that the coconut milk adds.
Both are delicious in their own right, you should give each one a try! Both are perfect soups for cold weather and if you’re feeling a cold coming on!

Tools Needed
The Key Ingredients (+ Substitutions)
Here is a list of the notable ingredients in this soup, plus a brief description and a link (if possible) of where to buy them! Just click the title of each ingredient.
- Coconut Milk. Coconut milk is made by extracting the liquid from the grated meat of mature coconuts. My favorite brands are Aroy-D and Chaokoh coconut milk. You can find them at any Asian market, as well as Whole Foods, Sprouts, some well-stocked HEBs (if you’re in Texas), and Amazon. I don’t recommend that you use refrigerated coconut milk that is meant to be a milk replacement; instead, look for the canned, full-fat coconut milk in the Asian aisle at your local grocery store.
- Galangal. Galangal is similar to ginger, but it has thinner skin, and a richer, spicier flavor. You will find this in the fresh produce section of your local Asian market. You can substitute fresh ginger in a pinch, if necessary.
- Lemongrass. Lemongrass is a super fragrant aromatic that comes in the form of a large stalk. You can also find this in the fresh produce section of your local Asian market, whole foods, or some well-stocked grocery stores. I tend to buy a lot when I find it and freeze it for later use.
- Makrut Lime leaves. These are leaves from the makrut (kaffir) lime tree and they have a spicy, and fragrant lime flavor. I tend to find them in the fresh produce section of your local Asian market or well-stocked grocery store. I also buy these in bulk and freeze them when I find them.
- Fish Sauce. Fish sauce is made from fish or krill that have been coated in salt and fermented for 2 years. I love the salty/umami flavor that fish sauce adds to this dish without tasting “fishy.” I have found fish at most well-stocked grocery stores including Trader Joe’s, HEB, Whole Foods, Sprouts, etc.
- Red Curry Paste. This is a paste made of red chilies, dried shrimp (it doesn’t taste fishy!), lemongrass, galangal, kaffir limes, garlic, etc. It’s so flavorful and adds tons to curries, soups, and marinades. My favorite brand is Mae Ploy!
- Palm Sugar. Palm sugar is a natural sweetener derived from varieties of palm trees. I love the subtle sweetness it adds to the soup. You can find it at most Asian markets or on amazon. The closest substitute would be coconut sugar, and brown sugar would work in a pinch.

How to Prepare Tom Kha Gai Soup
- I start with a dutch oven or pot that can hold at least 4 quarts. First, heat up a bit of neutral oil in the pot and add sliced shallots, chopped lemongrass, and the sliced galangal over medium-low heat.
- Then, sauté the aromatics for a couple of minutes until the shallot is a little softened.
- Then, add the curry paste to the pot and cook it for a couple of minutes, stirring often.
- Next, add the kaffir lime leaves and the chicken broth and bring it to a simmer for 20 minutes.
- Once the broth has reduced a little, use a slotted spoon to fish out the galangal, lemongrass and lime leaves. At this point, I add the chicken, fish sauce, palm sugar, and coconut milk and simmer until the chicken is cooked through.
- Then, I add the mushrooms and shrimp, season the soup with salt, add fresh lime juice and cilantro, and it’s ready to go!
Jenny’s Tip: I always add a little chili oil to the soup to make it spicy, but it’s totally up to you!

If you do give this recipe a try, I love hearing about it! Leave a comment with a star rating below. Be sure to subscribe to my weekly newsletter and never miss a new recipe! You can also snap a photo & tag @JENNYGOYCOCHEA on Instagram.
More Thai-Inspired Recipes to Try
- Thai Basil Chicken
- Thai Green Curry Meatballs
- Thai Red Pumpkin Curry
- Thai Panang Curry with Pork
- Thai Beef and Noodle Salad (Yum Nua)
- Thai Basil Chicken Wonton Soup
This post may contain affiliate links from which I receive a small commission at no additional cost to you. Affiliate links allow me to keep providing great recipes for free and I never recommend products that I don’t love and personally own.

Tom Kha Gai Soup Recipe
Ingredients
- 1 tablespoon neutral oil
- 2 shallots , peeled and thinly sliced
- 2 ” galangal root , sliced
- 1 lemongrass stalk , chopped
- 5 large kaffir lime leaves
- 2 rounded tablespoons red curry paste
- 7 cups chicken stock (homemade is best)
- 4 boneless skinless chicken breasts , thinly sliced
- 2 1/2 cups full-fat coconut milk
- 1 1/2 tablespoons fish sauce
- 2 oz palm sugar (or sub coconut sugar or brown sugar)
- 8 oz cremini mushrooms , quartered
- 3/4 lb raw medium shrimp peeled, tails removed, and deveined (optional)
- 1/3 cup heavy cream (optional)
- fresh lime juice
- salt to taste
- chopped cilantro
- chili oil (optional)
Instructions
- In a 4 quart heavy bottomed pot, add the oil and turn the heat to medium. Once the oil is warm, add the shallots, lemongrass, and galangal, and cook for 2- 3 minutes, until the shallots start to soften. Add the kaffir lime leaves and curry paste and cook for 2 minutes, until the curry paste is fragrant. Add the chicken broth and bring to a simmer for 20 minutes.
- Once the chicken broth has reduced by a bit, use a slotted spoon to remove the galangal, lemongrass and kaffir lime leaves. Add the chicken, coconut milk, heavy cream, palm sugar, and fish sauce and bring to a gentle simmer.
- After about 20 minutes, the chicken should be cooked through. At this stage, the mushrooms can be added directly to the soup but I actually like to sauté them in a cast iron with a little oil first to brown them, it’s entirely up to you! If you’re using shrimp, add them in with the mushrooms and simmer for another 4-5 minutes. Season the soup to taste with salt and lime juice (I personally like lots of lime juice).
- Ladle the soup into bowls, topped with chopped cilantro and chili oil, if desired.
Rate & Review This Recipe