Closeup of bowl with XO noodle soup.

XO Noodle Soup

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:

For the XO Broth:

To Serve:



  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.

Shop the Recipe


The nutritional information provided is approximate and can vary based on several factors. It should only be used as a general guideline. For more information, please see our Disclosure.