Thai Tofu and Pork Soup Recipe

Tofu, pork meatballs, and a light broth make this a perfect component of a larger Thai lunch.

A white porcelain bowl holding the Thai pork and tofu soup. On the top righthand of the image is a bowl of white rice.

Serious Eats / Mariel De La Cruz

Why This Recipe Works

  • A paste of garlic, white peppercorns, and cilantro roots (or stems) makes the broth and meatballs delicious and fragrant.
  • This flavorful but light dish is perfect as part of a larger lunch, or at a minimum served with a side of rice.

This whole thing about having a little bowl of Thai soup with a couple of mini spring rolls on the side served to you as the initial part of a lunch special is done only at Thai restaurants outside Thailand. When it comes to modern Thai cuisine, a soup is not served as a separate course to be consumed as a stand-alone item; it is considered as much an entrée as, say, a curry or a stir-fry. That is to say, it's kap khao (กับข้าว), something to eat with the main component of a typical Thai meal ensemble: rice.

A square white ceramic plate holding white peppercorns, two unpeeled cloves of garlic, and chopped cilantro stems.

Serious Eats / Leela Punyaratabandhu

Once in a while, I hear comments about how plain, brothy Thai soups in the kaeng chuet (แกงจืด) family (to which this soup belongs) are "too salty." The reason is simply that they're intentionally seasoned in anticipation of the bland rice with which they're to be consumed.

This soup, for example, looks anemic. But what isn't obvious from looking at it is the powerful ingredients that go into the dish, making it something that, even though doesn't invite attention, demands respect. I could pour a big ladle of this soup over a bowl of rice and call it a meal. Quick, fuss-free, satisfying.

But if I have friends over, I may incorporate this soup into a more elaborate meal. One consisting of a plate of fried fish with Thai three-flavored sauce, a plate of raw and steamed vegetables with a relish, and a bowl of this light soup comes to mind.

Cilantro leaves, cubes of tofu, and length of green onion on a wooden cutting board.

Serious Eats / Leela Punyaratabandhu

The Flavorful Ingredients Powering This Soup

You've seen the dynamic trio of garlic, white peppercorns, and cilantro roots (or stems) before. Remember the marinades for turmeric grilled chicken and honey baked chicken? The same paste is also used here to season the pork resulting in not only flavorful pork balls that make up for the blandness of the tofu but also a delicious and fragrant broth that starts out as plain water.

You can use plain water to make this soup, but if you feel like using broth, keep in mind that the basic stock that is used in modern Thai cuisine is most commonly made with pork bones or chicken carcasses and not much else. If you use the kind of stock that is made with added onions, carrots, celery, tomato paste, etc., it will drastically change the flavor and appearance of this soup. I use plain water; the flavor of the pork and seasoning paste in it as well as the soy sauce and fish sauce which you add later are enough to turn it into a flavorful broth even within such short cooking time.

Please note that, at least traditionally, this is not a stand-alone soup to be eaten on its own, but an entrée to be eaten with rice as part of a typical Thai meal ensemble. I highly recommend a meal of rice, Thai omelet (drizzled with Thai Sriracha), and a bowl of this soup for a simple weeknight meal.

August 2012

Recipe Details

Thai Tofu and Pork Soup Recipe

Prep 20 mins
Cook 10 mins
Active 30 mins
Total 30 mins
Serves 4 servings

Tofu, pork meatballs, and a light broth make this a perfect component of a larger Thai lunch.


  • 2 medium cloves garlic (10g), peeled

  • 1/4 cup finely-chopped cilantro stems, plus leaves for garnish

  • 1/2 teaspoon whole white peppercorns

  • 1/2 pound (225g) ground pork

  • 1 tablespoon plus 2 teaspoons (25mllight soy sauce

  • 1 tablespoon plus 1 teaspoon (20mlfish sauce

  • 4 1/2 cups (1.1L) homemade or store-bought chicken stock or water

  • 1 pound (455g) soft tofu packed in water, drained and cut into 1-inch cubes

  • 2 green onions (20g), cut into 1-inch pieces


  1. In a mortar and pestle, combine garlic, cilantro stems, and peppercorns and pound until a fine paste forms, about 3 minutes. Transfer to a medium bowl.

    Garlic, cilantro stems, and peppercorns pound into a fine paste inside mortar, with pestle on the lefthand side of the image.

    Serious Eats / Mariel De La Cruz

  2. Add ground pork, 2 teaspoons soy sauce, and 1 teaspoon fish sauce. Using your hands or a sturdy silicone spatula, mix until thoroughly combined, about 3 minutes. Set aside.

    A two-image collage. The top image shows ground pork, soy sauce, fish sauce, and herb paste inside of a glass bowl but not yet combined. The bottom image shows the ingredients now combined in the bowl.

    Serious Eats / Mariel De La Cruz

  3. In a medium pot, bring chicken stock or water to a boil, then reduce heat to maintain a simmer. Form seasoned pork mixture into 1-inch balls and gently drop into simmering stock. Cook until pork balls float, about 2 minutes.

    A four-image collage. The top left image shows chicken stock coming to a boil inside of a large Dutch oven. The top right image shows the meatballs formed and lined up in rows on a wooden cutting board. The bottom left image shows a single meatball about to be added to the boiling stock. The bottom right image shows all of the meatballs added to the broth in the Dutch oven and cooking.

    Serious Eats / Mariel De La Cruz

  4. Add remaining soy sauce and fish sauce to stock. Gently add tofu cubes and return to a simmer, then add green onions and remove from heat. Adjust seasoning as necessary with more fish sauce.

    The Dutch oven holding the soup, meatballs, tofu, and 1-inch length of scallions.

    Serious Eats / Mariel De La Cruz

  5. Ladle soup into individual serving bowls. Garnish with cilantro leaves. Some freshly-ground white pepper on top is optional, but recommended. Serve hot with steamed jasmine rice.

    A bowl of soup topped with cilantro leaves.

    Serious Eats / Mariel De La Cruz

Special Equipment

Mortar and pestle (preferably a granite, Thai-style model)

Nutrition Facts (per serving)
267 Calories
16g Fat
4g Carbs
29g Protein
Show Full Nutrition Label Hide Full Nutrition Label
Nutrition Facts
Servings: 4
Amount per serving
Calories 267
% Daily Value*
Total Fat 16g 20%
Saturated Fat 5g 23%
Cholesterol 55mg 18%
Sodium 1050mg 46%
Total Carbohydrate 4g 2%
Dietary Fiber 2g 6%
Total Sugars 2g
Protein 29g
Vitamin C 3mg 17%
Calcium 358mg 28%
Iron 3mg 19%
Potassium 464mg 10%
*The % Daily Value (DV) tells you how much a nutrient in a food serving contributes to a daily diet. 2,000 calories a day is used for general nutrition advice.
(Nutrition information is calculated using an ingredient database and should be considered an estimate.)