A dish of khao soi with chopsticks and a spoon
Photography, Stacey Brandford

Easy Khao Soi

This Thai coconut curry soup is perfect for busy weeknights.

Memories of the best khao soi– a slightly spicy dish of boiled and fried noodles, tender braised meat and a coconut-curry broth– take ELLE Gourmet food director Soo Kim right back to a humble café in Northern Thailand that specializes in this one dish. Inspired by that experience, this khao soi recipe is a quick solution for busy weeknights.

What is khao soi?

Khao soi is a noodle dish popular in Northern Thailand, Northern Laos and Myanmar. It typically features a flavourful curry broth made with coconut milk, pickled mustard greens and a combination of boiled and deep-fried egg noodles.

What are the ingredients for khao soi?

Some key ingredients for khao soi are the egg noodles, coconut milk, shallots, lime and curry paste (homemade or store-bought). If you’re looking for a ready-made curry paste, we recommend this Aroy-D version for its authentic ingredients, like lemongrass, chili and garlic.

What is the difference between khao soi and curry?

Unlike curry, the base of a khao soi is lighter and has the thinner consistency of a broth. But the coconut curry flavour still comes through in an intense and deeply complex way.

A dish of khao soi with chopsticks and a spoon

Easy Khao Soi

ELLE Gourmet's recipe for khao soi, a northern Thai coconut curry soup with noodles and braised meat.

Ingredients

Soup

  • 2 tbsp vegetable oil
  • 2 inch piece ginger thinly sliced
  • 3 cloves garlic crushed
  • tbsp Thai red curry paste see note #1
  • 1 tbsp Madras curry powder
  • 400 mL can Thai coconut milk
  • cups no-sodium chicken broth
  • tbsp fish sauce
  • 3 tbsp packed brown sugar
  • 2 bone-in, skin-on chicken breasts
  • 4 portions Chinese egg noodles about 450 g (see note #2)

Toppings

  • fried egg noodles optional (see note #3)
  • 1 shallot thinly sliced
  • 1 lime cut into wedges
  • 1 cup cilantro
  • chili oil

Instructions
 

  • Heat oil in pot over medium heat. Add ginger and garlic and cook for 1 minute. Stir in curry paste and curry powder; cook, stirring, until dark and aromatic, 2 minutes.
  • Stir in coconut milk, scraping bottom of pot; bring to a boil. Add chicken broth, fish sauce and sugar; bring to a boil. Reduce heat to medium-low and simmer, covered, for 10 minutes.
  • Add chicken; bring to a low boil. Reduce heat and simmer, covered, until chicken is cooked through, 20 to 25 minutes. Remove ginger and garlic; discard. Remove chicken and let cool for 5 minutes before shredding; return to pot.
  • Taste soup and adjust with more fish sauce or sugar, keeping in mind that the flavour will be diluted with the addition of noodles.
  • Meanwhile, boil egg noodles in large pot of boiling water for about 1 minute. Drain for 3 minutes without rinsing; divide among large, deep bowls. Top with soup, chicken, crispy egg noodles (if using) and a combination of shallot slices, lime wedges and cilantro. Serve with chili oil.

Notes

  1.  We like Aroy-D Thai red curry paste for its authentic ingredient list.
  2. Look for the chewy Chinese egg noodles in the refrigerator of an Asian grocery store.
  3. For crispy egg noodles, heat 1 cup vegetable oil in a small pot over medium heat. Cut 1 cup of the egg noodles into 3-inch pieces and fry until crispy, about 2 to 3 minutes. Remove to a paper-towel-lined plate.

 

More Thai recipes

A traditional recipe for a beloved Thai street food dish.
Get the recipe
A dish with pad gaprao, a fork and spoon on a grey wooden tablecloth with blue linens and lettuce seen in the background.

Ching-He Huang's simplified pad thai, featuring easy-to-find ingredients and premixed veggies.
Get the recipe
A blue dish with pad thai and chopsticks and a sauce dish visible next to it

An aromatic Thai-inspired broth served with herby, slightly spicy shrimp meatballs.
Get the recipe
A blue bowl with Thai meatball soup and a wooden spoon.

Share this article:

Sign up for our Good Life newsletter

This field is for validation purposes and should be left unchanged.
Name(Required)