Vietnamese Xíu Mại (Pork Meatballs in Tomato Sauce)
When it comes to comfort food, Vietnamese xiu mai hits all the right notes—tender pork meatballs simmered in a rich, savory-sweet tomato sauce and served with a crusty baguette or a bowl of warm rice. It’s one of those dishes that feels homey and nostalgic, whether you grew up with it or not.

These meatballs are light and juicy (thanks to jicama!), with just the right balance of sweetness and umami from fish sauce, garlic, and tomato. And the sauce? It’s so good, you’ll want to mop it up with every bite.
This recipe has been in regular rotation at my house for years. It’s simple to prep, freezer-friendly, and a big win with both adults and kids. So if you’re looking for something cozy, flavorful, and perfect for dipping—this one’s for you.
Why You’ll Love This Recipe
- Easy + flavorful: No breadcrumbs, no milk, no fancy binders—just pantry staples and fresh aromatics that come together fast.
- Versatile: Serve it with baguette, rice, or even over noodles.
- Meal prep friendly: Make a double batch and freeze the extras for a busy night.
- That sauce: It’s sweet, tangy, savory, and absolutely drinkable.
What Is Xíu Mại?
Xíu mại (pronounced “see-oo my”) is a Vietnamese meatball dish influenced by Chinese cuisine. While it shares a name with the steamed dim sum pork dumplings (siu mai), Vietnamese xiu mai is a totally different dish—made with ground pork, garlic, onions, and jicama, then simmered in a tomato-based sauce.
You’ll most often find xiu mai in Vietnamese-American bakeries and banh mi shops, nestled in a soft baguette with cucumber, pickled carrots, and cilantro. It’s also served hot over rice or rice noodles for a hearty meal.
Ingredients You’ll Need (Quick Overview)
Here’s a quick look at what you need to make xiu mai. Full measurements are in the recipe card below.

For the Meatballs
- Ground pork – The base of your meatballs. Go with something around 80/20 for juicy texture.
- Jicama – Adds moisture and natural sweetness. Sub with water chestnuts if you can’t find it.
- Yellow onion + garlic – Aromatics for depth of flavor.
- Fish sauce, sugar, salt, pepper – Classic Vietnamese seasoning blend.
For the Sauce
- Tomatoes + tomato paste – Builds a rich tomato base.
- Garlic + sesame oil – For that savory depth.
- Fish sauce, sugar, chicken bouillon – To layer on the umami.
- Cornstarch slurry – Optional, but great for thickening the sauce.
Please scroll ⬇️ to the recipe card for the full ingredient amounts and instructions.
How to Make Xiu Mai (Quick Overview)
- Cook the aromatics: Sauté onion, jicama, and garlic for 2-3 minutes, then let cool.
- Form meatballs: Mix everything together gently and shape into golf ball-sized meatballs.
- Cook the meatballs: Steam, bake, or air fry—whatever’s easiest for you!
- Make the tomato sauce: Simmer tomatoes, garlic, seasonings, and tomato paste for 20 minutes.
- Thicken and combine: Stir in a cornstarch slurry, add the meatballs, and simmer for 2-3 more minutes.
Serve it with crusty bread or hot rice and get ready to mop up every drop of that sauce.




Tips for the Best Xiu Mai
✔️ Sauté the veggies first: Don’t skip this step! It ensures the onions and jicama are tender and fragrant in every bite.
✔️ Don’t overmix: Mix the meatball mixture just until combined for the softest texture.
✔️ Let the sauce simmer: Give it time to develop flavor—20 minutes makes all the difference.
✔️ Use a blender: If you don’t like tomato chunks, blend the sauce until smooth before adding the meatballs.

How to Serve Vietnamese Meatballs
Xiu mai is super versatile, which makes it perfect for easy weeknight meals or casual get-togethers. The most classic way to serve it is with warm, crusty baguette—tear off a piece and dunk it right into that rich tomato sauce. You can also turn it into a full-on banh mi sandwich with pickled carrots and daikon, cucumber, and a smear of mayo for the ultimate savory bite. It’s just as good over a bowl of Vietnamese fried rice, steamed jasmine rice, or even tucked into a rice noodle bowl. Hosting a party? Keep the meatballs warm in a pot and serve them appetizer-style with toothpicks and extra sauce on the side.

Frequently Asked Questions (FAQ)
Yes! The meatballs and sauce can be made a day in advance and reheated when ready to serve.
Ground chicken or turkey works too—just note the texture will be slightly different.
It adds moisture and texture, but you can substitute with grated water chestnuts or even a bit of finely chopped zucchini.
How to Store & Reheat
- Fridge: Store leftovers in an airtight container for up to 4 days.
- Freeze: Freeze meatballs and sauce separately in freezer-safe containers for up to 2 months.
- Reheat: Warm gently on the stove or in the microwave. Add a splash of water if the sauce thickens too much.
Let’s Make Xiu Mai Tonight!
If you love cozy, saucy recipes with minimal fuss, these Vietnamese pork meatballs need to be on your dinner list. It’s simple, satisfying, and full of nostalgic flavor—especially when served with a warm baguette.
If you make this recipe, I’d love to know! Leave a comment or tag me so I can see your xiu mai creations!
RECIPE

Vietnamese Xiu Mai (Meatballs in Tomato Sauce)
Ingredients
For the Meatballs
- 1 pound ground pork
- ¾ cup jicama, finely diced
- ½ yellow onion, finely diced
- 3 garlic cloves, minced
- ½ tablespoon fish sauce
- ½ teaspoon salt
- ½ teaspoon ground black pepper
- 1 teaspoon sugar
For the Sauce
- ½ tablespoon sesame oil
- 2 garlic cloves, minced
- 1 ½ cups water
- 2 teaspoon chicken bouillon powder or Better Than Bouillon
- 3 tomatoes, diced
- 3 tablespoons tomato paste
- ½ tablespoon fish sauce
- 1 tablespoon sugar
- ½ teaspoon black pepper
- 2 teaspoon cornstarch + 2 tsp water (to thicken)
To Serve
- Baguette or steamed rice
Instructions
Cook the Aromatics for the Meatballs
- In a skillet over medium heat, add a little oil and sauté the diced onion for 1–2 minutes until fragrant. Add the jicama and garlic, cook for 1 more minute, then let cool completely.
Form the Meatballs
- In a mixing bowl, combine ground pork, the cooled onion-jicama-garlic mix, fish sauce, salt, pepper, and sugar. Mix gently. Form into golf ball–sized meatballs (about 10 total).
Cook the Meatballs (Choose One Method)
- Steam: Steam over boiling water for 6 minutes.Bake: Bake at 350°F for 15 minutes on a greased tray.Air Fry: Air fry at 350°F for 6 minutes.
Make the Tomato Sauce
- In a saucepan, heat sesame oil and sauté garlic until fragrant (about 30 seconds). Add water, bouillon, tomatoes, tomato paste, fish sauce, sugar, and pepper. Cover, bring to a boil, then lower heat and simmer for 20 minutes.
Thicken the Sauce & Combine
- Mix cornstarch and water in a small bowl, then stir into the sauce to thicken. Optional: use a blender for a smooth sauce. Add meatballs to the sauce and simmer for 2–3 minutes to let them soak up the flavor.
Serve
- Ladle the meatballs and sauce over warm rice or serve with slices of baguette. Enjoy!
Notes
- Sauté the veggies first: Don’t skip this step! It ensures the onions and jicama are tender and fragrant in every bite.
- Don’t overmix: Mix the meatball mixture just until combined for the softest texture.
- Let the sauce simmer: Give it time to develop flavor—20 minutes makes all the difference.
- Use a blender: If you don’t like tomato chunks, blend the sauce until smooth before adding the meatballs.


Felt homesick and these xiu mai’s tasted so similar to mum’s! Thanks for sharing 🙂
This recipe is simple and tasty. I’ve made it a few times already for banh mi xiu mai.
We love meatballs, but have never tried anything like this. They were SO good and I will definitely be making them again.
Great recipe! Both myself and my husband really enjoyed them, especially the sauce! A great way to change up your dinner menus! Would highly recommend it.
These look so delicious. We love Vietnamese food so they are on the menu for Saturday night.
These were full of flavor. I made the recipe for dinner tonight and my family loved it – will absolutely make this again soon.
I’ve never had a meatball like this before! These flavors are absolutely amazing!
I made these meatballs for dinner last night and my whole family loved them! Thanks so much for sharing the recipe!
These look great – what a terrific set of flavours.
I love all the layers of rich flavors in the sauce and in the meatballs!
Love how flavourful and delicious these meatballs are thanks for the recipe