Who doesn’t love a comforting dish that’s packed with flavor? Xiu Mai, often referred to as Vietnamese meatballs, is a delightful blend of savory pork, aromatic spices, and a tangy tomato-based sauce. It’s a dish that feels like a warm hug, perfect for any meal of the day.
What makes Xiu Mai so special is its versatility. Whether we’re scooping it up with crusty baguettes for a banh mi twist or pairing it with steamed rice, it always hits the spot. Its roots in Vietnamese cuisine, with a hint of French influence, make it a unique and beloved staple in many households.
What Is Xiu Mai?

Xiu Mai, often referred to as “Vietnamese meatballs,” is a beloved comfort dish with tender pork at its heart. These juicy meatballs are combined with seasonings like garlic, shallots, and fish sauce, imparting the savory, umami-rich flavors that we all adore in Vietnamese cuisine. What sets a classic xiu mai recipe apart, though, is the rich, tangy tomato-based sauce they’re gently simmered in. This sauce not only enhances the meatballs but also creates a luscious pairing for side dishes like steamed rice or crusty baguettes.
Traditionally, Xiu Mai showcases the harmonious intersection of Vietnamese and French culinary influences in its preparation. Its adaptability is part of its magic—we can enjoy it as a filling for banh mi sandwiches or as the main event in a hearty meal. Whether served at casual family dinners or celebrated on special occasions, Xiu Mai remains a staple in Vietnamese kitchens for its irresistible taste and versatility.
Ingredients
To make the perfect Xiu Mai, we gather a delicious mix of fresh and flavorful ingredients. This is the foundation of a classic Xiu Mai recipe that results in juicy meatballs paired with an irresistibly tangy tomato sauce.

For The Meatballs
- 1 lb (450g) ground pork: Use fatty pork to ensure the meatballs stay moist and tender.
- 125g (5 oz) shrimp (optional): Peeled, deveined, and finely minced for extra flavor.
- ½ to ¾ cup (100g to 150g) jicama: Finely diced to add moisture and a slight crunch.
- ½ cup (60g) onion: Finely diced yellow or white onion, or use red onion or shallots for more flavor.
- 3-5 cloves garlic: Minced to infuse the meatballs with aromatic depth.
- 2 tablespoons (30g) starch: Use potato starch, corn starch, or tapioca starch to bind the mixture.
- 1 large egg (optional): For additional binding.
- Seasonings: 1 teaspoon salt, ½ teaspoon ground black pepper, 1 tablespoon fish sauce, ½ teaspoon sugar, and ½ teaspoon chicken or mushroom bouillon powder.
For The Tomato Sauce
- 2 tablespoons oil: For sautéing.
- ½ cup (125g) onion: Minced for a sweet, aromatic base.
- 4 cloves garlic: Minced for added depth.
- 1 cup (240g) fresh tomatoes: Pureed or finely chopped for a rich, tangy flavor. Canned diced tomatoes can also be used.
- 2 tablespoons (30ml) fish sauce: For that classic umami flavor.
- 1 tablespoon sugar: Adjust sweetness to taste.
- 1 cup (240ml) water: To create a smooth, flowing sauce.
Optional Garnishes
- Chopped green onions: For a fresh pop of color and flavor.
- Cilantro leaves: Adds a fragrant herbal touch.
- Cracked black pepper: A final peppery kick on top.
- Sliced fresh chilies (optional): For those who love a spicy twist.
Tools And Equipment

To make the perfect Xiu Mai recipe, having the right tools and equipment is essential for smooth preparation and cooking. Here’s what we’ll need:
For Preparing the Meatballs
- Large bowl: Ideal for mixing ground pork, shrimp, jicama, and seasonings into a cohesive meatball mixture.
- Food processor or knife: If we want to finely chop pork, shrimp, or vegetables, a food processor can speed up the process. A knife works just as well for those who prefer a manual approach.
- Cheesecloth or paper towel: Necessary for wringing out excess moisture from the soaked baguette, ensuring the mixture doesn’t get too soggy.
- Ice cream scoop (optional): This can help us form uniform, evenly sized meatballs, ensuring consistent cooking.
For Cooking the Meatballs
- Steamer pot with insert: Xiu Mai is traditionally steamed, and this equipment is key. If our steamer insert is too deep, placing an upside-down bowl beneath the meatball bowl provides the perfect fit.
- Saucepan: A sturdy pan is required to sauté flavorful ingredients like garlic and onions, ensuring the meatballs are surrounded by a fragrant, tangy tomato sauce.
For Preparing the Tomato Sauce
- Saucepan: Separate from the one used for sautéing, this is necessary for cooking the tomatoes, garlic, and other sauce components.
- Knife: Handy for scoring and peeling tomatoes during prepping.
- Colander: If jicama is blanched, draining it in a colander ensures it’s ready to be incorporated without excess water.
These tools simplify the process and contribute to the success of crafting this delightful Vietnamese Xiu Mai recipe. Having them ready to go allows us to focus on infusing bold flavors and creating tender, juicy meatballs paired with their rich, aromatic tomato sauce.
Directions
Let’s dive into making this delicious xiu mai recipe. We’ll start by preparing the ingredients, creating the meatball mixture, and moving on to crafting the sauce that makes this dish truly special.

Prep The Ingredients
- Soak a small piece of baguette in 2 tablespoons of milk until softened. Squeeze out the excess milk and set it aside.
- Wash and peel the jicama, then shred or finely chop it. Use a colander to drain any excess liquid.
- Mince the garlic and shallots finely. Chop green onions and cilantro if using as garnishes.
- Finely dice the fresh tomatoes if not using canned ones.
Make The Meatball Mixture
- In a large mixing bowl, combine 1 pound of ground pork, the softened baguette, and 1/2 cup of shredded jicama.
- Add 2 tablespoons of chopped shallots, 2 minced garlic cloves, 1 tablespoon of fish sauce, 1/2 teaspoon of sugar, 1 teaspoon of salt, and a dash of black pepper.
- Mix the ingredients thoroughly with your hands or a spatula until the mixture becomes cohesive. For added texture, you can incorporate 4 ounces of finely chopped shrimp.
Shape The Meatballs
- Use an ice cream scoop or your hands to shape the meat mixture into uniform balls, about 1.5 inches in diameter. Place them on a plate or tray.
- If steaming, line your steamer tray with parchment paper or lightly oil it to prevent sticking. Arrange the meatballs evenly without overcrowding.
- Steam the meatballs over medium heat for 10-15 minutes or until fully cooked.
Prepare The Tomato Sauce
- Heat 1 tablespoon of oil in a saucepan over medium heat. Add 2 tablespoons of diced onions and 1 minced garlic clove. Sauté until fragrant.
- Add the diced tomatoes (or 1 cup of canned tomatoes) and cook until they soften, about 5 minutes.
- Season the sauce with 1 tablespoon of fish sauce, 1/2 teaspoon of sugar, and a dash of salt and pepper. Stir well.
- Add 1/2 cup of water or chicken broth to the pan, bringing the mixture to a simmer.
- Place the steamed meatballs into the sauce and simmer for another 10 minutes, allowing the flavors to meld.
Cooking Instructions

Let’s dive into the heart of our xiu mai recipe: cooking the meatballs to perfection and simmering them in a savory tomato sauce. These steps will ensure tender, flavorful meatballs every time.
Cook The Meatballs
- Prepare the Mixture: Start by soaking a piece of baguette in water until softened. Squeeze out any excess liquid with a cheesecloth or a paper towel. Add the softened bread to a large mixing bowl.
- Sauté Aromatics: In a pan over medium heat, sauté minced garlic and shallots until golden and fragrant. Add these to the bowl with the bread.
- Combine Ingredients: Into the same bowl, add one pound of ground pork, ½ cup shredded carrots, ½ cup shredded jicama, ¼ cup finely diced onions, 1 teaspoon salt, ½ teaspoon ground black pepper, 1 tablespoon fish sauce, 1 teaspoon sugar, and 2 teaspoons of cornstarch (or substitute with potato starch or tapioca starch). Mix everything evenly with clean hands or a spoon.
- Shape the Meatballs: Form the mixture into round, uniform meatballs approximately 2 inches in diameter. Tip: Using an ice cream scoop can help ensure consistent sizing.
- Steam the Meatballs: Bring 1-2 inches of water to a simmer in a steamer pot. Place the meatballs in a heatproof bowl and set it on a steamer insert. Cover the pot and steam the meatballs for about 20 minutes, or until they are firm and cooked through.
Simmer In Sauce
- Start the Tomato Sauce: Heat 2 tablespoons of cooking oil in a pan over medium heat. Sauté ½ cup diced onions and 2 cloves of minced garlic until softened.
- Add Tomatoes: Stir in 2 cups of diced fresh or canned tomatoes. Let them cook down for about 5 minutes, then season with 1 tablespoon of fish sauce, 1 teaspoon sugar, and a pinch of salt to taste.
- Simmer Combining Flavors: Gently place the steamed meatballs into the simmering tomato sauce. Cover the pan and let everything cook on low heat for 15 minutes, allowing the flavors to meld beautifully. Stir occasionally to prevent sticking.
- Adjust Seasoning: Taste the sauce and adjust the seasoning as needed. Add a splash of water if the sauce thickens too much.
Serving Suggestions

When serving Xiu Mai, we have a variety of delicious options that highlight the dish’s versatility and allow us to enjoy the tender meatballs and savory tomato sauce in different ways.
- With a Baguette: One of the most traditional ways to enjoy Xiu Mai is with a crusty baguette. We can spoon the meatballs along with the flavorful tomato sauce directly onto the bread and savor the soft, tender pork against the crunch of the baguette. This is especially popular for breakfast in Vietnam and brings a delightful contrast of textures to the table.
- In a Bánh Mì: For a sandwich twist, we can turn Xiu Mai into an irresistible bánh mì. We’ll pair the meatballs and sauce with classic bánh mì ingredients such as fresh cilantro, slices of cucumber, pickled vegetables, pate, and perhaps a touch of jalapeno for heat. The result is a perfect blend of flavors and textures that makes for a portable and satisfying meal.
- With White Rice: Another fantastic option is serving Xiu Mai with steamed white rice. The rice absorbs the rich tomato-based sauce beautifully, creating an excellent pairing that’s simple, hearty, and filling. This combination works wonderfully for casual lunches or dinners.
No matter the serving style, the tender meatballs from our Xiu Mai recipe shine in all their flavorful glory, ensuring a tasty and comforting culinary experience.
Make-Ahead And Storage Tips
Planning ahead can save time and keep the flavors of our Xiu Mai recipe just as delicious. Whether you’re preparing the meatballs or storing leftovers, the following tips ensure the best results.

Make-Ahead Tips
- Meatball Mixture: The meatball mixture can be prepared and refrigerated in an airtight container for up to 3 days before shaping and cooking. This allows us to have everything ready in advance, making it ideal for busy schedules.
- Tomato Sauce: We can make the tangy tomato sauce ahead of time as well. Store it in an airtight container in the refrigerator for up to 6 days or freeze it for up to 6 months. Simply reheat the sauce on the stove when you’re ready to serve.
Storage Tips
- Refrigeration: Once cooked, the Xiu Mai meatballs can be stored in an airtight container in the refrigerator for 2-3 days. This is perfect for quick meals later in the week.
- Freezing Uncooked Meatballs: Form the meatballs and freeze them in a single layer on a baking sheet. Once frozen, transfer them to freezer-safe zip-top bags or airtight containers. They can be stored in the freezer for up to 6 months.
- Cooking From Frozen: Steam the frozen meatballs directly without thawing. They will take approximately 15 minutes to cook through.
- Freezing Tomato Sauce: Just like the uncooked meatballs, the tomato sauce freezes wonderfully. Store it in freezer-safe containers for up to 6 months and thaw it in the refrigerator or microwave before reheating.
By following these steps, we can enjoy the versatility and convenience of our Xiu Mai recipe while ensuring the flavors stay rich and satisfying.
Conclusion
Xiu Mai is more than just a dish; it’s a comforting blend of tradition, flavor, and versatility that brings people together. Whether we’re savoring it with a crusty baguette, transforming it into a bánh mì, or pairing it with steamed rice, it never fails to deliver a satisfying meal.
By following the steps and tips we’ve shared, we can create a homemade version that’s just as delicious as the ones we’d find in Vietnamese kitchens. It’s a dish that’s perfect for any occasion and one we’ll want to make again and again. Let’s keep the joy of cooking and sharing Xiu Mai alive!
Frequently Asked Questions
What is Xiu Mai made of?
Xiu Mai is primarily made of ground pork, seasonings like garlic, shallots, and fish sauce, combined with ingredients like shredded jicama or soaked bread for tenderness. The meatballs are simmered in a tangy tomato-based sauce made from tomatoes, garlic, onions, and fish sauce.
How is Xiu Mai traditionally served?
Xiu Mai is traditionally served with a crusty baguette, often spooned directly onto the bread or used in a bánh mì sandwich. It can also be enjoyed with steamed rice, allowing the rich tomato sauce to complement the rice.
Can Xiu Mai be made ahead of time?
Yes, Xiu Mai can be prepared ahead for convenience. The meatball mixture can be refrigerated for up to 3 days, and the tomato sauce can be stored for 6 days in the fridge or frozen for up to 6 months. Cooked meatballs last 2-3 days in the fridge.
Can I freeze Xiu Mai?
Yes, Xiu Mai freezes well. Store uncooked meatballs for up to 6 months or freeze the tomato sauce separately. Frozen meatballs can be cooked directly without thawing for an easy meal.
What tools are needed to make Xiu Mai?
The essential tools include a large mixing bowl, a steamer pot, a food processor or knife for chopping, and an ice cream scoop for forming uniform meatballs. A colander can also be used to drain shredded jicama.
What are some variations of serving Xiu Mai?
Aside from pairing with bread or rice, Xiu Mai can be turned into a bánh mì sandwich with fresh cilantro, cucumber, pickled vegetables, and chilies. These variations highlight the dish’s versatility for any meal.
How do I make Xiu Mai meatballs tender?
Adding shredded jicama or soaked bread to the meat mixture helps retain moisture, ensuring tender meatballs. Proper steaming before simmering in tomato sauce also contributes to their delicate texture.
What gives Xiu Mai its unique flavor?
The combination of rich umami ingredients like fish sauce, garlic, shallots, and the tangy tomato-based sauce gives Xiu Mai its signature flavor. Optional garnishes like cilantro and chili enhance the dish further.
Can I add additional ingredients to the meatballs?
Yes, shrimp can be added to the meatball mixture for extra flavor. Feel free to customize the recipe with ingredients like shredded carrots or other seasonings to suit your taste.
Is Xiu Mai a cultural dish?
Yes, Xiu Mai is a dish deeply rooted in Vietnamese cuisine with a touch of French influence. Its versatility and comforting flavors make it a cherished staple in Vietnamese households and family gatherings.