Main Courses
This banh mi roast pork recipe brings Vietnam's boldest flavors to your kitchen table with tender, caramelized pork that melts between crisp baguettes and tangy pickled vegetables. 🔥 After perfecting this dish during my time in Charleston, I've refined the technique to balance sweet, smoky, and savory notes in every bite—just like the street vendors in Saigon.
The secret lies in slow-roasting the pork shoulder until it's fork-tender, then glazing it with a mix of fish sauce, sugar, and garlic that creates a sticky, aromatic crust. Traditional Vietnamese methods meet modern convenience here: no complicated techniques, just deep flavor that transforms simple ingredients into something extraordinary.
When you assemble the sandwich, expect layers of texture—crisp baguette, tender pork, bright pickled daikon and carrot, fresh cilantro, and a cool mayo-chili drizzle. The contrast of temperatures and textures makes each bite unforgettable, with the pork's caramelized edges adding just the right amount of crunch.
This recipe serves as both a comforting meal and a celebration of Vietnamese culture. Perfect for lunch gatherings or weekend feasts, it's the kind of dish that will have everyone asking for seconds. Let's get cooking!
Ingredients for banh mi roast pork
Vietnamese-inspired pork shoulder, aromatic marinade, and crisp baguettes create a symphony of textures and flavors.
| Ingredient | Amount | Notes |
|---|---|---|
| Boneless Pork Shoulder 🍖 | 2 ½ lb | With visible fat marbling preferred |
| Fish Sauce 🍶 | ½ cup | Vietnamese brand like Red Boat |
| Dark Brown Sugar 🍚 | ½ cup | Packed, not granulated |
| Garlic Cloves 🧄 | 8 cloves | Minced, skin-on for extra flavor |
| Fresh Ginger 🌿 | ¼ cup | Finely grated, peeled |
| Lime Zest 🍋 | 1 tbsp | From 2 limes, finely zested |
| Fresh Cilantro 🌿 | ½ cup | Chopped, stems included |
| Baguette Rolls 🥖 | 4 whole | French-style, crusty exterior |
| Mayonnaise 🥛 | ½ cup | Dijon-style preferred |
| Sriracha 🌶️ | ¼ cup | Adjust for heat preference |
| Daikon Radish 🥕 | 1 whole | Thinly sliced for pickling |
| Carrot 🥕 | 1 whole | Julienned for pickling |
| Rice Vinegar 🍶 | ½ cup | White vinegar substitute |
| Salt 🧂 | 1 tsp | Diamond Crystal preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly cracked |
The pork shoulder is the heart of this dish—look for cuts with visible fat marbling to ensure tenderness. Costco or your local butcher shop will have the best quality, but any grocery store pork shoulder works if it's fresh. For the fish sauce, Red Boat is the gold standard, but any reputable Vietnamese brand will do. The dark brown sugar is essential for that caramelized crust; don't substitute granulated sugar, as it won't melt as beautifully. Fresh ginger and garlic should be vibrant and aromatic—no dried substitutes here. If you can't find daikon radish, sub with extra carrot or jicama, though the texture will differ slightly.
No fish sauce? Soy sauce plus a dash of Worcestershire can mimic the umami depth, though it won't be identical. Running short on lime zest? Extra lime juice will add brightness, but the zest's aromatic oils are irreplaceable. For the baguettes, Trader Joe's or local bakeries often carry the best crusty varieties—avoid pre-sliced bread, as it lacks the necessary texture. The pickling mixture can be made a day ahead, but the pork should be roasted fresh for optimal flavor. If you're sensitive to heat, reduce the Sriracha to 2 tablespoons and add a touch of honey to balance.
The roasted pork keeps well in the fridge for 4-5 days, though it reheats best at low temperatures to preserve its tenderness. Store it in an airtight container with the marinade to maintain moisture. The pickled vegetables will last up to 1 week in the refrigerator, but their crunch diminishes over time. For the baguettes, toast them just before serving to maintain their crispness. Assemble sandwiches only when ready to eat—this is a dish where freshness matters most, with each component playing its part in the symphony of flavors.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this recipe because it’s all in one pan—no chopping boards full of mess. The pork shoulder gets tender just from simmering with garlic, ginger, and that perfect balance of fish sauce and brown sugar, while the edges caramelize into something crispy. Honestly? My counter stays cleaner than my usual roast pork attempts.
- Umami Bomb: That first bite of pork—salty, sweet, with a deep garlic-ginger punch—is ridiculously addictive. The fish sauce and brown sugar marry so well, they turn simple pork into something that tastes like it’s been slow-cooked for hours (even though it’s not). My kids now ask for it by name, and I’ve never heard them say that about store-bought deli meat.
- Lunchbox Hero: Between us, this pork is the star of my meal prep. Slice it thin, pack it with pickled veggies and herbs, and boom—your lunch is elevated without effort. I make a big batch on Sundays, and it lasts me all week, even when I forget to eat. (Yes, even on a Tuesday night.)
- Budget Win: Pork shoulder is cheap, and a single roast feeds my family for days. The leftovers? Even better cold in sandwiches or fried up for breakfast. I’ll be real: I’ve stretched one roast into three meals without anyone complaining—proof it’s my secret weapon for stretching groceries without sacrificing flavor.
Step-by-step instructions for Vietnamese-inspired roast pork
Master the balance of sweet, salty, and umami in this signature Vietnamese preparation.
🔥 Step 1: Marinate the Pork Shoulder for Flavor Depth
In a large bowl, combine the 2.5 lb boneless pork shoulder, 0.5 cup fish sauce, 0.5 cup packed dark brown sugar, 8 minced garlic cloves, 0.25 cup finely grated fresh ginger, and 1 tbsp lime zest. Use your hands to massage the marinade into every crevice of the meat—this ensures even flavor distribution and tenderizes the fibers. Cover and refrigerate for at least 4 hours (overnight is ideal) to allow the pork to absorb the complex flavors.
The fish sauce and sugar create a sticky glaze that caramelizes beautifully during roasting, while the ginger and garlic infuse the meat with aromatic depth. Don't skip the massaging—this step prevents dryness and guarantees rich flavor penetration throughout the entire cut.
🍳 Step 2: Roast Until Caramelized and Tender
Preheat your oven to 325°F. Transfer the marinated pork to a roasting pan, fat-side up if possible, and roast uncovered for 2 hours. After 2 hours, increase the temperature to 375°F and continue roasting for another 30-45 minutes until the internal temperature reaches 195-203°F and the exterior develops a deep caramelized crust.
Here's the thing—you want that crust to be sticky and dark brown, almost black in spots. This indicates proper caramelization of the sugar and fish sauce mixture. If the pork isn't reaching the desired temperature, tent it loosely with foil to prevent over-browning while it finishes cooking.
🥘 Step 3: Prepare the Quick-Pickle for Contrast
While the pork roasts, combine 0.5 cup rice vinegar, 1 tsp salt, and 0.5 tsp black pepper in a bowl. Add the 1 thinly sliced daikon radish and 1 julienned carrot, tossing to coat. Let this sit for at least 30 minutes before using—this brief marinade softens the vegetables slightly and enhances their natural sweetness.
The acidity from the rice vinegar cuts through the richness of the pork, adding brightness to each bite. I always use Diamond Crystal salt here—it dissolves completely and doesn't leave gritty residue. The radish and carrot should be uniformly coated when ready to assemble your banh mi.
👨🍳 Step 4: Assemble the Signature Spread
In a small bowl, mix together the 0.5 cup mayonnaise and 0.25 cup sriracha until smooth. This creates the signature sweet-spicy spread that defines authentic banh mi. Add 0.5 cup chopped fresh cilantro and stir gently to incorporate. The cilantro adds freshness that balances the heat from the sriracha.
Taste and adjust the seasoning—you might want to add a pinch more salt or a splash of rice vinegar if the sriracha is too dominant. This spread should be vibrant red with green flecks of cilantro. Keep it chilled until ready to use, as the flavors meld beautifully when served cold.
🔪 Step 5: Slice and Serve with Confidence
Once the pork reaches 195-203°F, remove it from the oven and let it rest for 15 minutes before slicing. This resting period allows the juices to redistribute, ensuring each slice remains moist and flavorful. Using a sharp carving knife, slice the pork against the grain into ¼-inch thick pieces.
To serve, lightly toast the 4 baguette rolls until just warm and slightly crisp. Spread the mayonnaise-sriracha mixture generously on each roll, then layer with the sliced pork, quick-pickled vegetables, and a sprinkle of fresh cilantro. The contrast of textures—crispy baguette, tender pork, crunchy pickles—makes this sandwich truly exceptional.
Pro Tips For Making Banh Mi Roast Pork
- Trim the Fat First: Skip the guesswork—slice off any visible fat from the pork shoulder before marinating. I learned this the hard way when greasy bits turned my roast pork greasy instead of caramelized. A quick trim means cleaner flavor and better browning later.
- Marinate Overnight, No Less: Two hours won’t cut it. Let the pork shoulder soak in the fish sauce, sugar, garlic, and ginger mix for at least 12 hours—ideally 24. The acid and sugar need time to tenderize and melt into the meat, not just sit on top. (Yes, even if you’re impatient like me.)
- Don’t Crowd the Pan: When searing, give the pork shoulder space—don’t stack slices. Overcrowding steams the meat instead of browning it, and you’ll end up with sad, pale strips instead of crispy, caramelized perfection. Work in batches if needed.
- Rest Before Slicing: After roasting, tent the pork with foil and let it sit for 5-10 minutes. Cutting too soon means juices will spill out, leaving you with dry slices. (Your future self will thank you—trust the process.)
Common mistakes when making perfect results
Over-Marinating the Pork
I've seen beginners leave pork shoulder in the marinade for days, thinking more time equals better flavor—but that's a mistake. After 8-12 hours, the fish sauce's acidity starts breaking down the meat fibers, leading to a mushy texture.
Stick to 4-6 hours maximum for perfect tenderness. The sugar in the marinade also caramelizes more effectively when roasted fresh, not pre-cooked in the fridge. 🌶️
Skipping the Resting Period
This is where many home cooks rush the process. After roasting, pork needs 15-20 minutes to rest—this lets juices redistribute, preventing dry slices. I've sliced pork immediately and ended up with sad, stringy results.
Use a meat thermometer to confirm 195-203°F internal temp before resting, then slice against the grain for maximum tenderness.
Uneven Sugar Caramelization
The dark brown sugar should create a glossy, sticky crust—but if your pork ends up dry or pale, you likely didn't baste it properly. Every 30 minutes during roasting, spoon the pan juices over the pork to dissolve the sugar and promote browning.
For extra insurance, broil for 2-3 minutes at the end to deepen the color. This step makes all the difference in that signature banh mi texture.
Using Wrong Baguette
Not all baguettes are created equal! Soft, pre-sliced sandwich rolls won't give you that perfect crispy crust. Seek out French-style baguettes with a thick crust—Trader Joe's or local bakeries are great sources.
Toast them just before serving to maintain that satisfying crunch. I've tried cheap baguettes, and honestly? It's a game-changer when you get it right. 🥖
Over-Pickling Vegetables
Longer pickling time means softer vegetables, which ruins the crunch you need in banh mi. The 30-minute quick-pickle is perfect—it just softens the edges without turning them mushy.
If you're short on time, even 15 minutes works, though flavor development will be slightly less intense. The acidity should brighten the pork without overpowering it.
Ignoring the Sriracha-Mayo Ratio
Too much sriracha makes the spread overwhelmingly hot, while too little loses that signature sweet-spicy balance. Start with the 0.25 cup called for and adjust to taste—some brands are hotter than others.
I've found that adding 1 tsp honey can help mellow the heat if needed. This spread should be vibrant red with just the right kick to complement the pork's richness.
Nutrition facts
Frequently asked questions
Can I substitute chicken or beef for the pork shoulder?
The traditional banh mi uses pork for its rich, fatty flavor that melts beautifully in the sandwich. Chicken would be too lean and dry, while beef (especially tough cuts) won't achieve the same tender texture. If you must substitute, try pork tenderloin (marinate for 2-3 hours max) or chicken thigh (boneless, skin-on) with a shorter roasting time of 1 hour at 375°F.
How do I make this vegetarian or vegan?
For a vegan version, replace the pork with marinated tofu or seitan (seared until crispy), and use vegan mayo with a dash of liquid smoke for depth. The pickled veggies and baguette remain the same. For vegetarian, try grilled eggplant or portobello mushrooms with a similar glaze of soy sauce, sugar, and garlic. The key is maintaining that sticky, caramelized texture.
Can I make the pork ahead of time?
Yes! The roasted pork keeps well in the fridge for 4-5 days when stored in an airtight container with its marinade. Reheat gently in a 300°F oven until warmed through (165°F internal temp), then slice fresh. The pickled veggies can also be prepped 1 day ahead, but assemble sandwiches just before serving for maximum crunch.
What if I don't have fish sauce?
Mix ½ cup soy sauce with 1 tbsp Worcestershire sauce and 1 tsp sugar to mimic fish sauce's umami depth. For authentic flavor, use Red Boat fish sauce—it's worth seeking out at Asian markets. The combination won't be identical, but it'll add that essential savory backbone to the marinade.
How do I adjust the heat level in the mayo-sriracha spread?
Start with the 0.25 cup sriracha called for, then adjust to taste. For milder heat, reduce to 2 tbsp and add 1 tsp honey. For extra spice, increase to 0.33 cup and balance with ½ tsp lime juice. The spread should complement—not overpower—the pork's rich flavor. Taste as you go!
