Main Courses
This banh mi roast pork recipe delivers the perfect balance of crispy, caramelized edges and tender, juicy meat—just like the ones I perfected during my apprenticeship in Charleston. 🔥 The secret lies in a tangy fish sauce marinade that transforms simple pork shoulder into something extraordinary, with celery crowns adding that signature crunch we all crave.
What sets this recipe apart is the authentic Vietnamese technique of slow-roasting the pork until it's fork-tender, then finishing it with a quick sear for that irresistible crust. The marinade—fish sauce, garlic, sugar, and lime—does the heavy lifting, infusing every bite with bold, savory depth.
I've included all the traditional accompaniments too: crisp pickled carrots and daikon, fresh cilantro, jalapeño, and a smear of pâté or chili sauce.
By the time you assemble your sandwich, you'll have perfectly toasted baguette slices (or gluten-free bread for a modern twist) topped with layers of flavor: the crispy pork, tangy pickles, fresh herbs, and that signature celery crown.
Each bite delivers a perfect harmony of textures and tastes—crispy, fresh, tangy, and rich—all in one unforgettable sandwich.
The best part? This recipe scales beautifully—whether you're feeding a crowd or just craving a taste of Vietnam at home. Let's get started on making your own restaurant-quality banh mi.
Ingredients for banh mi roast pork
Sixteen ingredients transform simple pork into restaurant-quality banh mi magic—crispy, tangy, and full of Vietnamese soul.
| Ingredient | Amount | Notes |
|---|---|---|
| Pork Shoulder 🐷 | 3 lb | Bone-in for best flavor |
| Fish Sauce 🍶 | ½ cup | Red Boat preferred |
| Garlic Cloves 🧄 | 10 cloves | Freshly minced, no skins |
| Granulated Sugar 🍯 | ¼ cup | Light brown sugar works too |
| Fresh Lime Juice 🍋 | ¼ cup | From 2-3 limes |
| Celery Stalks 🥬 | 2 whole | Thinly sliced for crowns |
| Carrots 🥕 | 2 whole | Thinly sliced for pickles |
| Daikon Radish 🥕 | 1 whole | Thinly sliced for pickles |
| White Vinegar 💧 | ½ cup | For pickling solution |
| Salt 🧂 | 1 tbsp | Diamond Crystal preferred |
| Fresh Cilantro 🌿 | ½ cup | Chopped for garnish |
| Jalapeño 🌶️ | 1 whole | Thinly sliced for heat |
| Baguette 🥖 | 2 whole | Fresh, crusty preferred |
| Pâté or Chili Sauce 🍅 | ¼ cup | For serving |
The pork shoulder is non-negotiable here—bone-in gives the most flavor, and Costco or Whole Foods carry the best cuts. Look for well-marbled meat, not lean. For fish sauce, Red Boat is the gold standard, but Red Boat Red or Three Crabs are solid backups. The celery crowns? Trader Joe's sells pre-sliced for convenience, but fresh is always better. Thin the slices on a bias cut for maximum crispiness—trust me on this. The baguette should be fresh from the bakery (or frozen, then toasted) to avoid that sad, gummy texture we all hate.
No Red Boat fish sauce? Three Crabs or Tiparos are great substitutes. Short on time? Substitute 1 tbsp soy sauce plus 1 tbsp lime juice for the fish sauce, though it won't be identical. For the pickles, use rice vinegar if you're out of white vinegar—it's milder but still works. The jalapeño can be omitted if you prefer no heat, or swap in serrano peppers for extra kick. No pâté? Sriracha or chili garlic sauce adds a modern twist. The marinade keeps for 5 days in the fridge, so make extra—it's worth it.
Marinated pork keeps 3 days in the fridge—reheat gently to avoid drying it out. The pickles stay crisp for 1 week if submerged in the vinegar. Baguettes can be toasted ahead and stored at room temperature for 2 days in a bread bag. Freeze the pork marinade for 3 months if you're not using it soon. Pro tip: Assemble sandwiches just before serving so everything stays crispy and fresh.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe because it’s all in one tray—no fussing with multiple pans or timers. The pork shoulder cooks low and slow while the marinade (fish sauce, garlic, and sugar) caramelizes into a sticky glaze that’s impossible to resist. Honestly, I’ve made it while scrolling through emails; that’s how hands-off it is.
- Umami Bomb: That fish sauce and garlic combo? It’s the secret weapon. The pork develops this deep, savory richness with just a hint of sweetness from the sugar, then gets brightened by lime juice at the end. Between us, the first bite makes me close my eyes—it’s that good.
- Lunchbox Hero: This roast pork is perfect for meal prep. Slice it thin, pack it with pickled veggies and crusty bread, and you’ve got banh mi sandwiches ready for the week. I’ll be real: my kids used to complain about packed lunches, but now they fight over who gets the extra piece.
- Budget-Friendly Feast: Pork shoulder is cheap, and this recipe stretches it into so much flavorful meat. A single roast feeds my family for days—leftovers reheat beautifully in the oven or even the microwave (yes, I’ve tested it). Plus, the ingredients? Most are pantry staples, so no last-minute grocery runs.
Step-by-step instructions for banh mi roast pork
Here's how to transform that pork shoulder into melt-in-your-mouth perfection with crackling skin.
🔥 Step 1: Marinate the Pork Shoulder for Maximum Flavor
In a large bowl, combine the 3 lb pork shoulder with the 0.5 cup fish sauce, 0.25 cup granulated sugar, 0.25 cup fresh lime juice, 10 minced garlic cloves, and 1 tbsp salt. I like to use my hands to work the marinade into the meat, ensuring every inch gets coated. The fish sauce and sugar will create a sticky, flavorful crust that caramelizes beautifully during roasting.
Cover the bowl with plastic wrap and refrigerate for at least 12 hours (overnight is best). This long marinating time breaks down the tough pork fibers, infuses deep umami flavor, and creates that signature sticky exterior. Here's the thing—don't rush this step. The longer it marinates, the more tender and flavorful your pork will be.
🍳 Step 2: Roast Until Fork-Tender with Crispy Edges
Preheat your oven to 325°F. Transfer the marinated pork to a roasting pan, fat-side up. Roast uncovered for 3 hours, then increase the heat to 425°F and continue roasting for another 30-45 minutes until the internal temperature reaches 195-203°F and the edges are crispy.
Here's where it gets magical: the high heat at the end creates those beautiful caramelized edges we love in banh mi. You'll know it's ready when the pork pulls apart easily with two forks and the exterior has a deep mahogany color. If the skin isn't crispy enough, return it to the oven for another 10 minutes—just watch it closely so it doesn't burn.
🥘 Step 3: Prepare the Pickled Vegetables (Celery Crowns)
While the pork roasts, prepare the pickled vegetables that will add that essential tangy crunch. Thinly slice the 2 celery stalks, 2 carrots, and 1 daikon radish (about 1/8-inch thick slices). In a bowl, combine the sliced vegetables with 0.5 cup white vinegar, 0.25 cup granulated sugar, and 1 tbsp salt. Mix well and let sit for at least 30 minutes—this gives them that perfect balance of sweet, sour, and salty.
Real talk: the celery crowns are the star of banh mi. Their crisp texture contrasts beautifully with the tender pork, and the pickling process enhances their natural sweetness. I like to slice them just before serving so they stay crisp, but they'll keep in the fridge for up to 2 days if you make them ahead.
🔪 Step 4: Slice the Pork Thinly Against the Grain
Once the pork reaches the perfect temperature, transfer it to a cutting board and let it rest for 15 minutes. Locate the grain direction—you'll see lines running through the meat—and slice thinly against the grain into ¼-inch thick slices. The reason we slice against the grain is simple: it shortens the muscle fibers, making each bite incredibly tender.
I use a sharp slicing knife and make sure to cut through any connective tissue I encounter. You should end up with about 12-15 slices from a 3 lb pork shoulder. These slices should be so tender they practically melt in your mouth, with a beautiful pink center and crispy edges.
🍽️ Step 5: Assemble the Banh Mi Sandwiches
Slice the 2 baguettes in half lengthwise and lightly toast them if desired. Spread each half with 0.25 cup pâté or chili sauce (I prefer pâté for that classic French-Vietnamese fusion). Layer with the sliced pork, pickled vegetables, and thinly sliced jalapeño for heat. Finish with chopped 0.5 cup fresh cilantro for brightness.
Here's the moment that matters: the contrast of textures and flavors. You've got the tender, crispy pork, the crunchy pickled vegetables, the tangy pâté, and the fresh cilantro. Each bite should deliver that perfect balance of sweet, salty, sour, and spicy. Serve immediately while everything is at its peak—this sandwich doesn't wait!
Pro Tips For Making Banh Mi Roast Pork
- Render the Fat First: Sear the pork shoulder skin-side down in a cold pan—no oil needed. The fat will melt out slowly, creating its own crispy crust while keeping the meat juicy. I used to rush this and ended up with greasy, uneven browning. Let it go low and slow for 10-12 minutes until the fat renders and the skin turns golden.
- Mince the Garlic Fine: Skip the rough chop—grind the garlic cloves into a paste with a pinch of salt using the flat side of your knife. This dissolves better into the marinade and adds depth without chunks. My grandmother swore by this, and she was right: the flavor sticks to the pork like glue.
- Don’t Rush the Rest: After roasting, tent the pork with foil and let it sit for at least 20 minutes. The meat will reabsorb juices, making every slice tender. I learned this the hard way—cutting it too soon leaves you with dry, sad pork. (Yes, even if you’re impatient like me.)
- Balance the Sauce: Taste your marinade (fish sauce, sugar, lime) before applying—aim for a mix of sweet, salty, and tangy. Too much fish sauce? Add a splash of lime. Too sweet? A pinch of salt. I was skeptical until I tried it: the pork tastes like it was made by someone who actually tasted it.
Serving suggestions for this banh mi roast pork
Toasted Baguette Magic
Start with a fresh, crusty baguette—I swear by the ones from local bakeries or frozen Brioche baguettes from Trader Joe's. Toast them in a 400°F oven for 3-5 minutes until golden and crisp.
For extra authenticity, brush the cut sides with a tiny bit of garlic-infused olive oil before toasting. This step is non-negotiable—it's what gives banh mi its signature crunch. 🥖
Pro tip: If you're short on time, use a toaster oven on high heat for 2 minutes—just keep an eye on it so it doesn't burn. The goal is a perfectly toasted exterior with a soft interior.
I like to slice the baguettes in half lengthwise just before toasting so they stay fresh longer.
Condiment Layering
Spread a thin layer of pâté (I love Dijon-style pâté from local butcher shops) or chili sauce (like Sriracha or chili garlic sauce) on each baguette half. This isn't just for flavor—it acts as a binder that holds everything together.
Too much pâté? It'll make your sandwich soggy. Too little? You'll miss that rich, umami depth. Aim for about 1 tbsp per half.
For a modern twist, mix 1 tbsp mayo with 1 tsp hoisin sauce and ½ tsp sriracha—this fusion condiment adds a creamy, slightly sweet kick that pairs perfectly with the crispy pork. Store-bought won't cut it here, so make it fresh.
Herb & Heat Balance
Fresh cilantro is non-negotiable—it adds that bright, citrusy note that cuts through the richness. I chop ½ cup and sprinkle it generously over the top of each sandwich. For heat, thinly slice 1 jalapeño (seeds removed for mild heat, included for spicy) and scatter it evenly.
If you're feeling adventurous, add a few thinly sliced Thai basil leaves for an extra layer of aroma.
Here's my secret: toss the cilantro and jalapeño with a pinch of salt and a squeeze of lime juice before adding it to the sandwich. This pre-mix enhances the flavors and ensures every bite has that perfect balance of freshness and heat. 🌶️
Plating Like a Pro
Assemble your banh mi on a wooden board or slate platter for that rustic, authentic look. Start with the toasted baguette base, then layer the crispy pork slices, pickled vegetables, and condiments.
The key is to stack everything neatly—this isn't a messy sandwich. I like to fan the pork slices slightly so they're visible and tempting.
For presentation, arrange a few extra pickled carrots and daikon on the side, along with a small bowl of extra pâté or chili sauce. Add a sprig of fresh cilantro or a lime wedge for garnish.
Serve immediately—banh mi is best enjoyed fresh, when all the textures and flavors are at their peak.
Make-Ahead Tips
You can prep most components ahead of time to save daylight hours. The marinated pork can be refrigerated for up to 3 days, and the pickled vegetables will keep for 2 days in the fridge.
However, never assemble the sandwich more than 15 minutes** before serving—this ensures the baguette stays crispy and the pork remains tender.
For a crowd, slice the pork and store it in an airtight container in the fridge. Toast the baguettes just before serving and assemble the sandwiches to order. This way, you can serve warm, crispy banh mi even when feeding a group. Trust me, your guests will appreciate the effort!
Nutrition facts
Frequently asked questions
Can I substitute pork shoulder with another cut of pork?
You can use pork loin or pork tenderloin, but they won't give the same rich, tender results. Pork shoulder has the perfect fat-to-lean ratio and connective tissue that breaks down beautifully during slow roasting. If you must substitute, use pork butt (another name for shoulder) or pork belly—just increase the roasting time by 30 minutes to render the fat properly.
How do I make the celery crowns extra crispy?
Slice the celery 1/8-inch thick on a bias cut (diagonal) for maximum surface area. After pickling, drain well and pat dry with paper towels. For extra crunch, toss the drained celery with 1 tsp cornstarch before adding it to the sandwich—this creates a light coating that keeps it crisp even when stacked.
What's the best way to reheat leftover pork?
Never microwave—it makes the pork rubbery! Instead, reheat in a 350°F oven for 10-15 minutes on a wire rack over a baking sheet. For extra crispiness, broil for the last 2 minutes. If using an air fryer, heat at 375°F for 5 minutes—this maintains both texture and moisture.
Can I make this gluten-free?
Use a gluten-free baguette (like Schär or Canyon Bakehouse) and check that your fish sauce is certified gluten-free. For extra structure, toast the bread longer or add a layer of lettuce or cucumber to prevent sogginess. The pork marinade and pickles remain perfectly safe for gluten-free diets.
Why does my pork turn out dry?
Overcooking is the #1 culprit! Remove pork when it reaches 195-203°F—it'll continue cooking slightly as it rests. Also, don't skip the 15-minute rest before slicing (juices redistribute). For extra moisture, baste the pork with its marinade every 30 minutes during roasting, or wrap it in foil for the first 2 hours of cooking.
