Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 lb (907 g) boneless lamb shoulder, cut into 1-inch (2.5 cm) cubes
- 2 tsp kosher salt, divided; 1/2 tsp black pepper
- 1 1/2 tbsp neutral oil
- 1 medium yellow onion, sliced
- 4 cloves garlic, minced
- 2 tbsp grated fresh ginger
- 2 stalks lemongrass, bruised and cut into 3-inch pieces
- 6 kaffir lime leaves (or 2 tsp lime zest)
- 4 cups (960 ml) low-sodium chicken stock
- 1 can (13.5 oz / 400 ml) full-fat coconut milk
- 2–3 tbsp fish sauce
- 2 tsp light brown sugar
- 1–2 Thai chilies, thinly sliced (or 1/2–1 tsp red curry paste)
- 8 oz (225 g) cremini mushrooms, sliced
- 2 cups (60 g) baby spinach
- 2 tbsp fresh lime juice
- Garnish: cilantro, sliced scallions, extra chilies
Do This
- 1. Season lamb with 1 1/2 tsp salt and pepper; brown in oil in a Dutch oven over medium-high heat (8–10 minutes total).
- 2. Sauté onion (4 minutes), then garlic + ginger (1 minute).
- 3. Add stock, coconut milk, lemongrass, lime leaves, chilies, fish sauce, and sugar; bring to a gentle simmer.
- 4. Cover and simmer on low (190–200°F / 88–93°C) until lamb is very tender, 75–90 minutes.
- 5. Add mushrooms; simmer uncovered 10 minutes. Stir in spinach to wilt (1–2 minutes).
- 6. Turn off heat; add lime juice. Taste and adjust with remaining salt/fish sauce/lime.
- 7. Ladle into bowls and garnish with cilantro and scallions.
Why You’ll Love This Recipe
- Tender, cozy, and aromatic: Lamb becomes melt-in-your-mouth in a coconut-laced lemongrass broth.
- Thai-inspired flavors made approachable: A few key ingredients create a fragrant, lightly spicy soup without complicated technique.
- Weeknight-friendly hands-off simmer: Most of the cook time is gentle bubbling on the stove.
- Easy to customize: Dial the heat up or down and swap veggies based on what you have.
Grocery List
- Produce: yellow onion, garlic, fresh ginger, lemongrass, kaffir lime leaves (or limes for zest/juice), Thai chilies (or jalapeño), cremini mushrooms, baby spinach, cilantro, scallions
- Meat: boneless lamb shoulder
- Pantry: neutral oil, low-sodium chicken stock, full-fat coconut milk (canned), fish sauce, light brown sugar, kosher salt, black pepper
Full Ingredients
For the lamb
- 2 lb (907 g) boneless lamb shoulder, cut into 1-inch (2.5 cm) cubes
- 2 tsp kosher salt, divided
- 1/2 tsp freshly ground black pepper
- 1 1/2 tbsp neutral oil (avocado, grapeseed, or canola)
For the Thai-inspired coconut lemongrass broth
- 1 medium yellow onion, halved and thinly sliced
- 4 cloves garlic, minced
- 2 tbsp (about 20 g) grated fresh ginger
- 2 stalks lemongrass, tough outer leaves removed, bruised with the back of a knife, cut into 3-inch pieces
- 6 kaffir lime leaves, gently torn (or 2 tsp finely grated lime zest, added at the end)
- 4 cups (960 ml) low-sodium chicken stock
- 1 can (13.5 oz / 400 ml) full-fat coconut milk
- 2–3 tbsp fish sauce (start with 2 tbsp, adjust to taste)
- 2 tsp light brown sugar (or palm sugar)
- 1–2 Thai chilies, thinly sliced (adjust to taste), or 1/2–1 tsp red curry paste
Vegetables and finishing
- 8 oz (225 g) cremini mushrooms, sliced (about 2 1/2 cups)
- 2 cups (60 g) baby spinach
- 2 tbsp (30 ml) fresh lime juice (about 1–2 limes)
Optional garnishes (highly recommended)
- 1/2 cup loosely packed fresh cilantro leaves
- 2 scallions, thinly sliced
- Extra sliced chilies

Step-by-Step Instructions
Step 1: Season and brown the lamb
Pat the lamb dry with paper towels (this helps it brown instead of steaming). Season with 1 1/2 tsp kosher salt and 1/2 tsp black pepper.
Heat a large Dutch oven or heavy pot over medium-high heat for 2 minutes. Add 1 1/2 tbsp neutral oil. Brown the lamb in 2 batches so the pan isn’t crowded, cooking 4–5 minutes per batch and turning occasionally until you have deep golden edges. Transfer browned lamb to a plate.
Step 2: Build the aromatic base
Reduce heat to medium. Add the sliced onion and cook, stirring, until softened and lightly golden, about 4 minutes.
Add the garlic and grated ginger and cook until fragrant, about 1 minute. Keep it moving so the garlic doesn’t scorch.
Step 3: Add broth, coconut milk, and Thai-inspired aromatics
Pour in 4 cups chicken stock, scraping the bottom of the pot to release any browned bits (they add tons of flavor). Stir in the coconut milk, lemongrass, kaffir lime leaves, 2 tbsp fish sauce, 2 tsp brown sugar, and 1 Thai chili (start milder; you can add more later).
Return the browned lamb (and any juices on the plate) to the pot. Bring just to a gentle simmer over medium-high heat, about 5–7 minutes.
Step 4: Simmer until the lamb is tender
Once simmering, reduce heat to low, cover, and maintain a gentle simmer (aim for 190–200°F / 88–93°C if you use a thermometer). Simmer until the lamb is very tender, 75–90 minutes.
Check once or twice and adjust the heat as needed; you want slow bubbles, not a rolling boil.
Step 5: Cook the mushrooms and lightly reduce the broth
Uncover the pot and remove the lemongrass pieces and kaffir lime leaves (they’ve done their job and are not pleasant to chew). Add the sliced mushrooms and simmer uncovered for 10 minutes, which concentrates flavor and cooks the mushrooms through.
Step 6: Wilt the spinach and balance the flavors
Stir in the baby spinach and cook just until wilted, 1–2 minutes.
Turn off the heat and stir in 2 tbsp lime juice (adding it at the end keeps it bright). Taste the soup and adjust:
- More savory: add 1–2 tsp more fish sauce
- More tang: add 1–2 tsp more lime juice
- More heat: add the second chili (or a small spoon of red curry paste)
- More balance: add a pinch more brown sugar if it tastes sharp
If you used lime zest instead of kaffir lime leaves, stir in 2 tsp lime zest now.
Step 7: Serve and garnish
Ladle the soup into warm bowls, making sure each serving gets plenty of tender lamb and mushrooms. Finish with cilantro and sliced scallions. Serve hot.
Pro Tips
- Don’t skip browning: Those browned bits on the bottom of the pot are the backbone of the soup’s depth.
- Bruise the lemongrass: Smacking it with the back of a knife cracks the stalk so it releases more citrusy aroma into the broth.
- Keep the simmer gentle: A low simmer (not a boil) helps lamb shoulder turn tender without tightening up.
- Season in layers: Fish sauce + lime are powerful. Add them gradually at the end until the broth tastes balanced.
- Prefer a silky broth? After removing lemongrass and lime leaves, whisk the pot well to fully blend the coconut milk back in.
Variations
- Tom kha-inspired: Add 1 cup (240 ml) extra stock and 1/2 lb (225 g) shrimp in the last 3–4 minutes of cooking (until shrimp are just opaque). Keep the lamb, or replace half the lamb with shrimp for a lighter soup.
- Vegetable boost: Add 1 cup (100 g) thin-sliced carrots at the start of the simmer, and/or 1 red bell pepper (thinly sliced) with the mushrooms.
- Creamier and richer: Increase coconut milk to 2 cans (27 oz / 800 ml) and reduce stock to 3 cups (720 ml).
Storage & Make-Ahead
Cool leftovers to room temperature for about 30 minutes, then refrigerate in an airtight container for up to 4 days. Reheat gently in a saucepan over medium-low heat until steaming hot, about 8–12 minutes; avoid a hard boil to keep the lamb tender and the coconut broth smooth.
For make-ahead, the soup is even better the next day. You can simmer the lamb and broth (through Step 4) up to 2 days ahead, refrigerate, then reheat and finish with mushrooms, spinach, and lime right before serving for the freshest flavor and color.
Nutrition (per serving)
Approximate, based on 6 servings: 520 calories, 33 g protein, 37 g fat, 15 g carbohydrates, 3 g fiber, 8 g sugar, 980 mg sodium.

