XO Noodle Soup

Closeup of bowl with XO noodle soup.

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Crispy savory ground pork, chewy fish balls and black pepper pork balls, a flavorful XO sauce infused broth, bok choy, crisp spring onion and slippery rice vermicelli noodles come together to make this hearty XO Noodle Soup bowls!



For the Crispy Pork:

  • 200 grams / 7 ounces lean Ground Pork (note 1)
  • ¼ TSP ground White Pepper
  • 1 TSP Corn Starch
  • 2 TSP Low Sodium Light Soy Sauce
  • ¼ TSP Sesame Oil

For the XO Broth:

  • 6 Garlic cloves – peeled and roughly chopped
  • 416 fresh Red Chilies (Thai Bird’s Eye or any other small hot red chilies), to taste – destemmed and roughly chopped
  • 1.5 TBLS minced Ginger
  • 45 small Asian Red Shallots – peeled, halved, thinly sliced
  • 1 Spring Onion – finely chopped, white and light green parts separated from dark green parts
  • 170 grams / 6 ounces (1 pack) fresh Fish Balls (regular or fried – note 2)
  • 170 grams / 6 ounces (1 pack) fresh Black Pepper Pork Balls (or use 1 more pack of fish balls)
  • 2.5 TBLS Canola Oil (or any other neutral flavored cooking oil)
  • 4 TBLS / ¼ cup XO Sauce (spicy or regular – note 3)
  • 1 liter / 1000ml Pork Bone Broth (or Chicken Broth)
  • 2 cups / 474ml Water
  • 2 TBLS Low Sodium Light Soy Sauce
  • 2 TBLS Shao Xing Rice Wine
  • 1 TSP Dark Soy Sauce
  • ¼ TSP ground White Pepper, to taste
  • ½ TSP Kosher Salt, to taste
  • ½ TSP freshly cracked Black Pepper (or use black pepper powder), to taste
  • 1 TSP Sesame Oil
  • 1 TSP Pure Chili Oil (optional – without flakes/seeds)

To Serve:

  • 14 ounces / 400 grams Rice Vermicelli Noodles (or udon, ramen, etc. I used vacuum sealed packs – note 4)
  • 6 pieces Asian Greens (bok choy, choy sum, or Chinese broccoli)
  • 50 grams / 1.75 ounces Snow Peas (optional)
  • Reserved Spring Onion dark green parts
  • 1 Large Red Chili – deseeded if desired, thinly sliced at an angle



  1. Marinate the ground pork: Combine the ground pork, ground white pepper, low sodium light soy sauce, corn starch, and sesame oil in a medium bowl. Mix well to combine, set aside.
  2. Prepare the fresh ingredients: Roughly chop the garlic and fresh red chilies. Using a mortar and pestle, pound into a course paste. Mince the ginger, slice the shallots, and chop the spring onion (separate the white and light green parts from the dark green parts). Rinse the fish balls and black pepper pork balls in a fine mesh strainer and set aside.

For the XO Broth:

  1. Cook the pork: Heat ½ tablespoon of canola oil in a medium-sized skillet over medium-high heat. Once hot, add the ground pork and allow to sear for 20-30 seconds until the bottom turns golden brown and crispy. Then stir-fry for 2 minutes, breaking the clumps with your spatula until cooked. Drain off any excess grease and oil from the pan and set aside.
  2. Sauté the aromatics: Heat the remaining 2 tablespoons of oil in a large Dutch oven or stockpot over medium-high heat. Once hot, add the shallots and spring onion white and light green parts. Sauté for a minute until slightly softened. Add the smashed garlic-chilies paste and ginger and sauté for 30 seconds until fragrant.
  3. Build the broth: Add the XO sauce and stir briefly to combine. Then pour in the pork bone broth and water and season with low sodium light soy sauce, Shao Xing rice wine, dark soy sauce, white pepper, kosher salt, and black pepper. Stir to combine and bring to a boil. Reduce the heat to low and simmer uncovered for 10 minutes. (Note: At this point you can strain the broth and discard the solids if you prefer it not to have any chunky bits.) Add the fish balls and black pepper pork balls and simmer for 5-6 minutes. Stir in the sesame oil and pure chili oil (if using), then switch off the heat.

To Assemble Noodle Bowls:

  1. Assemble the noodle bowls: While the broth is simmering, cook the rice vermicelli noodles according to package instructions in a separate pot of boiling water. During the last 30 seconds of cooking, add the Asian greens and snow peas (if using) and blanch briefly. Drain into a fine mesh strainer. Transfer the snow peas to an ice water bath. Drain immediately and pat-dry with paper towels. Divide the noodles, Asian greens, and snow peas evenly into bowls.
  2. To Serve: Ladle the XO broth, fish balls, and black pepper pork balls evenly into the noodle bowls. Spoon the crispy ground pork on top. Garnish with the reserved spring onion dark green parts and sliced chili. Serve immediately.



  1. Pork: I used ground pork and marinated it with white pepper, corn starch, low sodium light soy sauce and a small splash of sesame oil. It’s best to use lean ground pork so that it doesn’t all dissolve into fat. Feel free to use lean minced beef, turkey, or chicken if you prefer.
  2. Fish balls and black pepper pork balls: Look for these in the fridge or freezer section an Asian/Chinese supermarket. If using fresh, simmer for 5-6 minutes as per recipe. If using frozen, they don’t need to be thawed before adding to the broth. Check the package for simmering time required as it may vary depending on size. It shouldn’t be longer than 10-15 minutes. They are cooked once they float to the top and are tender. You can use regular (non-fried) or fried fish balls. Feel free to use any other type of pre-cooked packaged Asian seafood or meatballs that you like.
  3. XO Sauce. This jarred condiment is made with chili peppers, shallots, garlic, dried seafood (dried shrimp and scallop and occasionally abalone), and Jinhua pork (Chinese ham). While many brands produce this sauce, Lee Kum Kee’s XO sauce is the one that’s most widely available. I use their extra hot XO sauce in my home, but they also have a regular XO sauce which is milder. Look it in an Asian supermarket or order a jar online. You can use a homemade XO sauce if you like. Use more of the solids and leave as much oil as possible behind in the jar to avoid having an excessively greasy broth.
  4. Rice Vermicelli Noodles. I used 2 x 200 grams/7 ounce vacuum sealed packs of pre-cooked rice vermicelli noodles which need to be briefly boiled until the strands loosen from the cake form they come in. Feel free to swap for udon, ramen, or any other type of noodles you like. You can use dried or fresh noodles. Use half the amount if using dried noodles. Most dried noodles will be approximately double in weight once cooked.
  5. Storage: Store the crispy pork and XO broth in separate airtight sealed airtight containers for 2-3 days. When ready to serve, cook the noodles, blanch the veggies, and assemble the noodle bowls. Do not refrigerate assembled noodle bowls as the noodles will absorb the broth and bloat over time in the fridge.