Bánh mì xíu mại with Vietnamese pork meatballs in tomato sauce, pickled daikon carrot, cucumber, cilantro and jalapeño on glass crust baguette

BÁNH MÌ XÍU MẠI (VIETNAMESE PORK MEATBALL BÁNH MÌ)

Bánh Mì Xíu Mại is the pork meatball version. Where most bánh mì fillings are sliced and layered, xíu mại arrives in a different form entirely: steamed pork meatballs braised in a light tomato and fish sauce, spooned directly into the baguette while still warm. It is the most comforting version in the archive.

The meatballs are built around ground pork mixed with jicama, which adds a subtle crunch that holds up inside the baguette. The tomato sauce is light and savory, not thick or sweet. It soaks slightly into the crumb, binds everything together, and makes this sandwich unlike anything else on this site.

Bánh mì xíu mại with Vietnamese pork meatballs in tomato sauce, pickled daikon carrot, cucumber, cilantro and jalapeño on glass crust baguette
L. Nguyen

Bánh Mì Xíu Mại (Vietnamese Pork Meatball Bánh Mì)

Steamed pork and jicama meatballs braised in a light tomato and fish sauce, served warm inside a Glass Crust baguette with Vietnamese mayonnaise, pickled daikon and carrot, fresh cucumber, cilantro, and jalapeño. Southern Vietnamese comfort food built into a sandwich. [ INTERMEDIATE ]
Prep Time 25 minutes
Cook Time 30 minutes
Chill Time 30 minutes
Total Time 1 hour 25 minutes
Servings: 4 bánh mì
Course: Sandwich
Cuisine: Vietnamese

Ingredients
  

The Meatballs
  • 500 g ground pork, 80/20 fat ratio
  • 150 g jicama, finely diced
  • 3 cloves garlic, minced
  • 2 shallots, finely minced
  • 2 tbsp fish sauce
  • 1 tbsp oyster sauce
  • 1 tsp sugar
  • ½ tsp white pepper
  • 2 tbsp panko breadcrumbs
The Sauce
  • 1 tbsp neutral oil
  • 3 cloves garlic, minced
  • 1 shallot, finely minced
  • 400 g canned crushed tomatoes
  • 2 tbsp fish sauce
  • 1 tsp sugar
  • ½ tsp white pepper
  • 120 ml water
The Pickles
  • 200 g daikon radish, julienned 3mm wide
  • 200 g carrot, julienned 3mm wide
  • 120 ml unseasoned rice vinegar
  • 120 ml water
  • 30 g sugar
  • 8 g kosher salt
The Assembly
  • 4 Vietnamese bánh mì baguettes (Glass Crust standard)
  • 4 tbsp Vietnamese mayonnaise
  • 1 small cucumber, sliced lengthwise into thin strips
  • 1 bunch fresh cilantro, stems trimmed
  • 2 jalapeños, sliced thin on a bias
  • Maggi Seasoning Sauce, for finishing

Equipment

  • Steamer basket
  • Wide pan
  • Mandoline slicer
  • Bread knife

Method
 

Make the Pickles
  1. Combine rice vinegar, water, sugar, and salt in a small saucepan over medium heat. Stir until sugar and salt dissolve completely, 2 to 3 minutes. Do not boil. Remove from heat and let cool to room temperature, 15 minutes.
  2. Pack daikon and carrot into a clean jar. Pour brine over vegetables. The brine should cover the vegetables completely. Seal and refrigerate for a minimum of 1 hour. Two hours produces a better result. The pickles will keep for 2 weeks refrigerated.
Make the Meatballs
  1. Combine ground pork, jicama, garlic, shallots, fish sauce, oyster sauce, sugar, white pepper, and panko breadcrumbs in a large bowl. Mix thoroughly for 2 minutes until the mixture is well combined and slightly sticky. Do not undermix. The meatballs will fall apart during steaming if the mixture is loose.
  2. Refrigerate the mixture for 30 minutes. Cold mixture holds its shape better when rolling.
  3. Roll the mixture into balls using approximately 2 tablespoons per meatball. Each ball should be around 4cm in diameter. You should get 16 to 20 meatballs.
  4. Place meatballs on a heatproof plate in a single layer. Steam over boiling water for 8 minutes. The meatballs will be just cooked through. They will finish cooking in the sauce.
Make the Sauce
  1. Heat oil in a wide pan over medium heat. Add garlic and shallot. Cook until softened and fragrant, 2 minutes. Do not let them brown.
  2. Add crushed tomatoes, fish sauce, sugar, white pepper, and water. Stir to combine. Bring to a gentle simmer.
  3. Add the steamed meatballs to the sauce. Simmer uncovered for 10 minutes, turning the meatballs once halfway through. The sauce will thicken slightly and coat the meatballs. The meatballs are done when they are firm all the way through.
  4. Taste the sauce. It should be savory, lightly tangy, and balanced. Adjust fish sauce for salt, sugar for sweetness.
Assemble
  1. Split each baguette lengthwise, cutting three-quarters through. Do not cut completely. The hinge holds the sandwich together.
  2. Open the bread. Apply Vietnamese mayonnaise to both cut surfaces. This is the fat barrier. It seals the bread against moisture from the sauce.
  3. Spoon 4 to 5 meatballs into each baguette. Add a spoonful of sauce over the meatballs. Do not overfill. The sauce will soak into the crumb. One spoonful is enough.
  4. Add cucumber strips across the meatballs.
  5. Add pickled daikon and carrot. Drain them first. Excess brine combined with the tomato sauce will oversaturate the bread.
  6. Add cilantro in whole sprigs. Do not chop it.
  7. Finish with jalapeño slices. Two to three per sandwich is the correct amount.
  8. Three drops of Maggi Seasoning Sauce across the top. No more. Close the sandwich. Press down firmly with your palm. Serve immediately.

Notes

On the jicama: Jicama is available at most Asian grocery stores and many larger supermarkets. It adds a mild sweetness and crunch that holds up inside the meatball during steaming and braising. If you cannot find jicama, water chestnuts are the correct substitute. Dice them to the same size. Do not substitute with any soft vegetable. The texture will be lost.
On the meatball mixture: The 80/20 fat ratio in the ground pork is not optional. Leaner pork produces dry meatballs that tighten up during steaming. The fat keeps them tender. Ask the butcher for ground pork shoulder if the fat content is not labeled.
On the sauce: The tomato sauce should be light and savory, not thick or sweet. If it reduces too much during simmering, add water two tablespoons at a time. The sauce should coat the meatballs but still be loose enough to spoon easily.
On the bread: The tomato sauce will soften the Glass Crust within a few minutes of assembly. Assemble and serve immediately. Do not let the sandwich sit. This is not a make-ahead sandwich.
On make-ahead: The meatballs and sauce can be made up to 2 days ahead and refrigerated together. Reheat gently over low heat before assembling. The pickles can be made up to 2 weeks ahead.

[ THE SCIENCE ]

The jicama inside the meatball is doing something specific. Ground pork on its own shrinks when it cooks because the muscle fibers tighten and squeeze out moisture. That is why meatballs can turn dense and dry. Jicama is about 90% water, but it holds that water inside its cell walls even under heat. Think of it like a tiny sponge that does not let go. When the meatball cooks, the pork fibers tighten around the jicama pieces, but the jicama pushes back, keeping spaces open inside the meatball and releasing just enough moisture to keep the texture tender. The result is a meatball that is firm enough to hold its shape in the baguette but still gives when you bite through it. Skip the jicama and the meatball firms up into something closer to a dense pork ball, which is a different texture entirely.

[ THE FAQ ]

What is the difference between Vietnamese xíu mại and Chinese siu mai? The names come from the same source but the dishes are completely different. Chinese siu mai are delicate dim sum dumplings wrapped in thin wonton pastry. Vietnamese xíu mại are large steamed pork meatballs braised in a tomato and fish sauce. The Vietnamese version was adapted from the Chinese name but rebuilt entirely with local ingredients and French-influenced technique. They share a name and nothing else.

Can I use ground chicken or beef instead of pork? Ground chicken works and produces a lighter result. Use thigh meat ground, not breast, for the same reason the fat ratio matters in pork. Ground beef works too but changes the flavor profile significantly. The fish sauce and oyster sauce in the recipe are calibrated for pork. If using beef, reduce the fish sauce by half.

Why do my meatballs fall apart during steaming? The mixture was not mixed long enough or was too warm when rolled. Mix for a full 2 minutes until the mixture feels slightly sticky and holds together when pressed. Refrigerate for 30 minutes before rolling. Cold mixture binds better and holds its shape during steaming.

Can I skip the steaming step and cook the meatballs directly in the sauce? The texture will be different. Steaming first sets the outside of the meatball before it goes into the sauce, which keeps it firm and round. Cooking directly in the sauce produces a softer, more irregular meatball that can break apart. Steam first for the correct result.

How do I keep the bread from going soggy? Assemble and serve immediately. The Vietnamese mayonnaise on both cut surfaces creates a fat barrier that slows moisture absorption, but the tomato sauce will still soften the crumb within a few minutes. One spoonful of sauce per sandwich is the correct amount. More than that and the bread cannot hold up.

[ THE EQUIPMENT ]

A steamer basket handles the meatball cooking step. A wide pan with enough surface area holds the meatballs in a single layer for the sauce. A mandoline slicer produces the consistent 3mm julienne the pickles require. A bread knife splits the baguette without crushing the Glass Crust.

The full equipment list with specific recommendations is on the Equipment page.

[ WHAT TO READ NEXT ]

The Bánh Mì Thịt Nướng recipe is the grilled pork version, the one most people make first. Different texture, same five-element structure, built for a cast iron skillet instead of a steamer.

The Đồ Chua recipe covers the pickle brine in full detail. The pickles in this recipe follow the same formula. If you have a jar already made, use it.

For the complete component that keeps every sandwich intact regardless of the filling, see the Vietnamese Mayonnaise recipe, where the emulsion technique and the fat barrier logic are covered in full.