Vietnamese meatball banh mi (bánh mì thịt viên) is the sandwich that proves street food can be both fast and deeply flavorful. Juicy pork meatballs poached in a light tomato broth, tucked into a crispy baguette with tangy pickled carrots, cool cucumber, bright cilantro, and a smear of sriracha mayo.

This version uses a poaching method instead of pan-frying - the meatballs absorb broth flavor as they cook and stay remarkably soft. The whole sandwich comes together in about 40 minutes, making it a realistic weeknight dinner or a satisfying lunch prep.

For a related Vietnamese meatball preparation served in tomato sauce over rice, see our Vietnamese xiu mai meatballs in tomato sauce. For general meatball technique across cuisines, check the how to make meatballs guide.

Key Takeaways

  • Poaching, not frying: meatballs simmer in seasoned broth for maximum tenderness and built-in sauce.
  • Jicama crunch: finely diced jicama (or daikon) inside the pork keeps each bite lively instead of dense.
  • Quick pickles matter: the do chua (pickled carrot and daikon) adds the tang that makes banh mi taste like banh mi.
  • Build order: spread mayo first, add meatballs and sauce, then pile on pickles, cucumber, and herbs.
  • 40 minutes total: 20 minutes prep, 20 minutes cook - no marinating required.

How to Make Vietnamese Meatball Banh Mi

  1. Finely dice jicama or daikon. Wrap in a clean towel and squeeze dry to remove excess moisture.
  2. In a large bowl, combine ground pork, squeezed jicama, green onion whites, garlic, 1 tablespoon fish sauce, cornstarch, sugar, salt, and pepper. Mix until just combined. Shape into 24 meatballs, about 1.25 inches across. Wet hands if the mix sticks.
  3. In a wide skillet, heat oil over medium heat. Sauté shallot and garlic for 2 to 3 minutes until softened. Stir in tomato paste and cook 30 to 45 seconds until fragrant.
  4. Add chicken broth, 1 tablespoon fish sauce, and 1 teaspoon sugar. Bring to a gentle simmer. Carefully drop meatballs into the liquid in a single layer.
  5. Poach gently for 12 to 15 minutes, turning once halfway, until meatballs are firm and cooked through (160F / 71C internal). Remove meatballs with a slotted spoon and set aside.
  6. If sauce is thin, whisk in the cornstarch slurry and simmer 1 to 2 minutes until lightly thickened. Taste for salt and fish sauce.
  7. Split baguettes lengthwise. Spread mayo on both cut sides. Add sriracha if using. Place 5 to 6 meatballs in each baguette. Spoon a little sauce over the meatballs.
  8. Top with pickled carrots and daikon, cucumber spears, cilantro, and jalapeno slices. Press closed and serve immediately.

Ingredients

Meatballs

  • 1 lb (450 g) ground pork, 80/20 or 85/15
  • 2/3 cup (80 g) jicama or daikon, finely diced (sub: water chestnuts)
  • 2 green onions, white and green parts separated, finely chopped
  • 2 cloves garlic, minced
  • 1 tbsp fish sauce
  • 1 tbsp cornstarch
  • 1 tsp sugar
  • 1/2 tsp kosher salt
  • 1/2 tsp black pepper

Poaching broth

  • 1 tbsp neutral oil
  • 1 small shallot, minced
  • 2 cloves garlic, minced
  • 2 tbsp tomato paste
  • 4 cups (960 ml) low-sodium chicken broth
  • 1 tbsp fish sauce
  • 1 tsp sugar
  • 1 tsp cornstarch mixed with 1 tsp cold water (optional slurry)

Sandwich assembly

  • 4 crusty baguettes (about 8 to 10 inches each)
  • Mayonnaise (about 3 tbsp total)
  • Sriracha or chili sauce (optional)
  • Quick-pickled carrots and daikon (do chua)
  • 1 cucumber, cut into thin spears
  • 1 bunch fresh cilantro, roughly chopped
  • Fresh jalapeno slices (optional)

Do Chua: Quick-Pickled Carrots and Daikon

Do chua is the tangy pickle that makes a banh mi taste authentic. The ratio is simple and the result keeps for weeks in the fridge.

Ingredients:

  • 1 large carrot, peeled and cut into thin matchsticks
  • 1 small daikon radish, peeled and cut into thin matchsticks
  • 1/2 cup (120 ml) rice vinegar
  • 1/4 cup (50 g) sugar
  • 1 tsp kosher salt
  • 1/2 cup (120 ml) warm water

Method:

  1. Pack carrot and daikon matchsticks into a clean jar or bowl.
  2. Whisk rice vinegar, sugar, and salt into warm water until dissolved.
  3. Pour over the vegetables. Press down so they are submerged.
  4. Let sit at room temperature for at least 30 minutes before using. Better after 2 hours. Keeps refrigerated for up to 3 weeks.

Why Poaching Works for Banh Mi Meatballs

Most Western meatball recipes start with browning. For banh mi, poaching in broth does two things at once: cooks the pork gently so it stays tender, and infuses the meatballs with fish sauce and tomato flavor from the inside out.

The light tomato broth left in the skillet becomes a drizzle sauce for the sandwich. No separate sauce to make - the cooking liquid does double duty.

Cooking method Texture Flavor Sauce
Pan-fry Firmer, caramelized crust Browning flavor on surface only Need separate sauce
Poach (this recipe) Soft, pillowy, uniform Broth flavor throughout Cooking liquid becomes sauce
Bake Moderate firmness Even but mild Need separate sauce

For a version where meatballs simmer directly in a thicker tomato sauce (good for rice bowls), see Vietnamese xiu mai meatballs in tomato sauce.

The Banh Mi Assembly

The order matters. A well-built banh mi distributes flavor and texture in every bite.

  1. Split the baguette. Open it lengthwise, keeping one side attached as a hinge if possible.
  2. Spread mayo on both cut sides. This creates a moisture barrier so the bread does not get soggy from the sauce. Add sriracha on top if you want heat.
  3. Add meatballs. Place 5 to 6 warm meatballs in a row along the bottom half. Spoon a little poaching broth over them.
  4. Layer the pickles. Add a generous handful of do chua (pickled carrot and daikon) directly on top of the meatballs.
  5. Add fresh elements. Cucumber spears, cilantro, and jalapeno slices go on last so they stay crisp.
  6. Close and press. Press the sandwich gently to compact the filling. Cut in half on the diagonal if serving immediately.

Tips for Better Banh Mi Meatballs

  • Fat content matters. Use pork with at least 15% fat (80/20 or 85/15). Very lean pork produces dry, crumbly meatballs.
  • Squeeze the jicama thoroughly. Wet jicama is the most common reason these meatballs fall apart in the broth.
  • Do not boil the poaching liquid. A gentle simmer - small bubbles breaking the surface - keeps the meatballs tender. A rolling boil toughens the exterior.
  • Turn only once. Let the meatballs set for 6 to 7 minutes before flipping. Disturbing them too early can cause breakage.
  • Warm the baguettes. A 5-minute toast in a 350F oven or a quick pass under the broiler crisps the crust and prevents sogginess.

For more meatball texture tips across cuisines, see the how to make meatballs guide.

Make-Ahead, Storage, and Freezing

Cooked meatballs keep in broth in an airtight container in the fridge for 3 to 4 days. Reheat gently in the skillet over medium-low heat.

Freeze raw shaped meatballs on a parchment-lined tray until solid, then transfer to a freezer bag. They keep for 2 months. Poach directly from frozen, adding 3 to 4 minutes to the cook time.

Assembled banh mi does not keep well - the bread softens. Assemble just before eating. Store components separately and build fresh.

Do chua (pickled carrots and daikon) keeps refrigerated for up to 3 weeks in its brine. Make a batch on the weekend and use it all week.

Variations

  • Chicken meatballs: swap pork for ground chicken. Add 1 tablespoon oil to the mix since chicken is leaner.
  • Turkey banh mi: ground turkey works well with an extra tablespoon of fish sauce for moisture.
  • Shrimp addition: replace 3 oz of pork with finely minced raw shrimp for extra bounce - similar to the approach in Thai luk chin meatballs.
  • Air fryer meatballs: shape and air fry at 375F for 10 to 12 minutes, then finish in the poaching broth for 5 minutes to absorb flavor. See air fryer meatballs for general method notes.
  • No-bread bowl: serve meatballs and sauce over jasmine rice with the same pickles and herbs for a rice bowl version.

FAQ

What is the difference between banh mi thit vien and xiu mai?

Banh mi thit vien refers to the sandwich format - pork meatballs stuffed into a baguette. Xiu mai refers to the meatballs themselves, usually served in tomato sauce. Xiu mai is the filling; banh mi thit vien is the finished sandwich. Both use similar pork meatball recipes.

Can I use store-bought meatballs for banh mi?

You can, but the flavor profile will be different. Italian-seasoned frozen meatballs lack the fish sauce, jicama, and cornstarch that make Vietnamese meatballs distinctive. If using store-bought, warm them in a broth made from chicken stock, fish sauce, and a splash of soy sauce to add Vietnamese flavor.

What bread works best for banh mi?

A light, airy Vietnamese-style baguette with a thin, shattering crust is traditional. French-style baguettes from Asian bakeries are ideal. Standard supermarket baguettes work in a pinch - toast them briefly to crisp the crust. A dense, chewy sourdough does not work well for banh mi.

How do I keep the bread from getting soggy?

Spread mayonnaise on both cut sides of the baguette before adding fillings. The mayo creates a moisture barrier. Do not add too much sauce - just a light spoonful over the meatballs. Assemble just before eating, not hours ahead.

What does banh mi mean in Vietnamese?

Banh mi literally means “bread” in Vietnamese. It refers to both the baguette itself and the sandwich made with it. The French introduced baguettes during colonial rule; Vietnamese cooks adapted them into a lighter, crispier version and filled them with local ingredients like pickled vegetables, cilantro, and fish sauce.

Can I make banh mi meatballs ahead?

Yes. Shape the raw meatballs and refrigerate for up to 24 hours, or freeze for up to 2 months. Poach from cold (add 1 to 2 minutes if from fridge) or from frozen (add 3 to 4 minutes). Cooked meatballs keep in broth for 3 to 4 days in the fridge.

Sources