Main Courses
This milk pork recipe transforms humble ingredients into a luxurious dish that balances creamy coconut richness with the satisfying crunch of crispy celery crowns. 🔥 The secret lies in braising pork shoulder until tender, then finishing it with a velvety coconut milk sauce that absorbs perfectly into every bite.
I developed this after years of perfecting Southeast Asian-inspired braises at The Smoky Pig, where we serve 2,000 pounds of pork weekly.
The technique is simple yet professional: sear the pork to lock in juices, then slow-cook with coconut milk until fork-tender. The crispy celery crowns add textural contrast that keeps every bite exciting.
What makes this dish special is how the coconut milk's natural sweetness complements the pork's savory depth, creating a sauce that's both comforting and sophisticated.
By the time you serve this, you'll have crispy celery crowns resting atop tender pork swimming in a silky coconut sauce. The aroma alone will have everyone gathering at your table—it's the kind of dish that feels like a restaurant experience at home.
Perfect for family dinners or special occasions where you want to impress without fuss.
This recipe scales beautifully for crowds, and the leftovers reheat just as well as the first serving. The combination of textures and flavors makes it a standout main course that's sure to become a regular on your menu. Let's get cooking!
Ingredients for milk pork
Six ingredients for the pork, six for the sauce, plus crispy crowns that steal the show.
| Ingredient | Amount | Notes |
|---|---|---|
| Pork Shoulder 🐖 | 3 lb | Bone-in, cut into 2-inch chunks |
| Full-Fat Coconut Milk 🥥 | 2 cans | 13.5 oz each, Thai Kitchen preferred |
| Celery Stalks 🧅 | 4 whole | Hearts only, for crispy crowns |
| Yellow Onion 🧅 | 1 whole | Large, sliced into half-moons |
| Garlic Cloves 🧄 | 8 cloves | Smashed, not minced |
| Fresh Ginger 🌿 | 2 tbsp | Finely grated, peel on |
| Fish Sauce 🍶 | 2 tbsp | Red Boat preferred |
| Brown Sugar 🍚 | 2 tbsp | Light or dark works |
| Soy Sauce 🍶 | 2 tbsp | Kikkoman or similar |
| Olive Oil 🫒 | ½ cup | For searing pork |
| Coconut Oil 🥥 | 2 tbsp | For crisping celery crowns |
| Salt 🧂 | 1 ½ tsp | Diamond Crystal kosher |
| Black Pepper 🌶️ | 1 tsp | Freshly cracked |
| Thai Basil Leaves 🌿 | ½ cup | For garnish, optional |
| Lime Wedges 🍋 | 2 whole | For serving |
The pork shoulder is the star—look for thick-cut pieces with good marbling at Whole Foods or your butcher. I always ask for bone-in; it adds flavor and helps keep the meat moist. For coconut milk, Thai Kitchen cans are my go-to—they're creamy and consistent. Fresh ginger and garlic? Buy them whole and grate/smash right before cooking. The celery crowns need the hearty, fibrous center stalks—skip the leafy tops. If you can't find Thai basil, regular basil works, but it won't have that same anise kick.
No fish sauce? Soy sauce plus a pinch of sugar gets you close, but the umami punch won't be the same. Running out of brown sugar? White sugar works in a pinch, but the sauce won't caramelize as beautifully. For the celery crowns, if you can't find whole stalks, slice regular celery lengthwise into 1/4-inch strips and crisp them the same way. The coconut milk cans? Once opened, they keep for 5 days in the fridge, but the sauce freezes beautifully for 3 months. I always make double batches—leftovers reheat perfectly for lunch the next day.
This dish is all about timing. Sear the pork first to lock in juices, then let it braise low and slow—no rushing. The celery crowns crisp in just 3-4 minutes, so keep an eye on them. For serving, I like to arrange the crispy celery crowns right on top of the pork, letting the sauce pool underneath. The lime wedges add a bright finish that cuts through the richness. Store leftovers in the sauce—it keeps everything moist and flavorful for 4-5 days. Freeze portions of the sauce separately if you want to use it for other dishes later.
Why You'll Love This Recipe
- One-Pot Magic: I swear by this—just toss everything into a Dutch oven and let it slow-cook. No chopping mountains of veggies, no last-minute prep. That rich coconut milk does all the work while you sip your coffee.
- Creamy Crispy Contrast: The pork shoulder gets tender enough to fall apart, but the edges? Golden and crispy. Meanwhile, the coconut milk turns the whole thing into a velvety dream—like a hug in a bowl. Honestly, the first bite makes me pause.
- Weeknight to Potluck: Make a big batch on Sunday and reheat it all week—it tastes even better the next day. Or bring it to a gathering; it’s fancy enough for company but simple enough to make when you’re exhausted.
- Budget-Friendly Feast: Pork shoulder stretches far, and coconut milk adds luxury without breaking the bank. I’ve fed six people for under $15, and everyone leaves happy. (Yes, even my picky uncle.)
Step-by-step instructions for silky coconut braise with crispy celery crowns
Here's how to turn simple ingredients into a restaurant-worthy dish with tender pork and crispy celery crowns.
🔥 Step 1: Sear the Pork Shoulder for Maximum Flavor
Pat the 3 lb pork shoulder dry with paper towels—this is crucial for crispy edges. Heat 0.5 cup olive oil in a large Dutch oven over medium-high heat until shimmering. Working in batches (you'll need to do this twice), add the pork chunks and sear for 3-4 minutes per side until deeply golden brown.
Don't crowd the pan or the temperature will drop. You're building layers of flavor through the Maillard reaction—those browned bits sticking to the bottom will dissolve into the sauce later. Once all pork is seared, remove it and set aside on a plate.
👨🍳 Step 2: Prepare the Crispy Celery Crowns
While the pork rests, cut the 4 whole celery stalks lengthwise to expose the white core. Use a sharp knife to carefully slice off the crispy green crowns (about 1 inch of the top). Heat 2 tbsp coconut oil in a small skillet over medium heat until just smoking. Add the celery crowns in a single layer and cook for 2-3 minutes until golden and blistered.
Here's the trick—don't move them! Let them crisp undisturbed, then flip once for even browning. Remove and set aside on a paper towel-lined plate. These crowns add texture contrast and visual appeal to your dish.
🍳 Step 3: Build the Aromatic Coconut Base
In the same Dutch oven (no need to clean it), add 1 whole yellow onion sliced into half-moons and cook for 5 minutes until softened. Add 8 smashed garlic cloves and 2 tbsp finely grated fresh ginger (peel on), cooking for 1 minute until fragrant. Pour in 2 tbsp fish sauce, 2 tbsp soy sauce, and 2 tbsp brown sugar, stirring to combine.
This is where the magic happens—the fish sauce adds umami depth while the sugar caramelizes slightly, creating a complex flavor foundation. Let it cook for 2 minutes until the mixture reduces by about ¼ and smells rich and aromatic.
🥘 Step 4: Braise the Pork in Coconut Milk
Return the seared pork to the Dutch oven along with any accumulated juices. Pour in the 2 cans full-fat coconut milk and add 1.5 tsp salt and 1 tsp freshly cracked black pepper. Bring to a gentle simmer over medium-low heat, then cover and cook for 1 hour 30 minutes, stirring occasionally.
Here's what to watch for: the pork should be fork-tender when pierced with a knife (the knife should slide in easily). If the sauce reduces too much before the pork is done, add 2-3 tablespoons of water to maintain moisture. The coconut milk will create a silky, velvety sauce that coats every bite.
🔪 Step 5: Finish and Garnish with Crispy Toppings
Once the pork is tender, remove it from the sauce and shred it using two forks directly in the Dutch oven. Return the shredded pork to the sauce and stir to combine. Taste and adjust seasoning if needed—you might want to add a splash more fish sauce for umami or soy sauce for saltiness.
To serve, ladle the pork and sauce into bowls. Top each portion with crispy celery crowns and 0.5 cup Thai basil leaves. Serve with the 2 whole lime wedges on the side for a bright, tangy contrast. The combination of tender pork, rich coconut sauce, and crispy celery crowns makes this dish truly special.
Pro Tips For Making Milk Pork
- Brown the Pork First: Skip the direct simmer—sear the pork shoulder in a hot pan until it’s deep golden, not pale. The Maillard reaction here makes all the difference, especially when it’s later braising in coconut milk. (Yes, even if you’re impatient like me, don’t rush this.)
- Blend the Aromatics: Pulse the onions, garlic, and celery in a food processor until they’re a rough paste, not chunks. This ensures even flavor distribution in the coconut milk and prevents a watery, uneven texture. I learned this the hard way—my first batch had celery stalks floating like sad toothpicks.
- Simmer Slow and Low: After adding the coconut milk, keep the heat at a gentle simmer, not a boil. High heat curdles the coconut milk faster than you can say “disaster,” and you’ll end up with a greasy, separated mess. Aim for 2–3 hours, covered, until the pork shreds easily.
- Strain the Milk Last: Let the coconut milk sit in the pot with the pork until the very end, even if it looks cloudy. The milk absorbs flavors from the meat and aromatics, and straining it too early robs the dish of depth. Save the strained milk for another use—this is where the magic happens.
Best sauces and condiments for these flavors
Creamy Coconut Milk Sauce
This dish's signature sauce relies on full-fat coconut milk—I insist on Thai Kitchen brand for its rich, creamy texture. The secret is balancing sweetness with umami through 2 tbsp brown sugar and 2 tbsp fish sauce (Red Boat preferred).
Simmer these together for 2 minutes to develop caramelized depth before adding the pork. For extra richness, I sometimes whisk in 1 tbsp coconut cream at the end. 🥥
Spicy Fish Sauce Twist
Want heat? Add 1 tsp sambal oelek (chili paste) when building the sauce base—it blends seamlessly with the coconut milk. For smoky flavor, swap 1 tbsp fish sauce with 1 tbsp soy sauce and ½ tsp smoked paprika.
My favorite shortcut? A dash of Sriracha stirred into the final sauce. The key is adjusting to taste at the end.
Herb Finishing Touches
Fresh herbs elevate this dish instantly. Beyond Thai basil, try cilantro (for brightness) or mint (for freshness). For a Southern twist, I garnish with chopped scallions and a sprinkle of toasted sesame seeds.
Pro tip: Pulse herbs with a pinch of salt in a food processor for even distribution. The aroma alone makes this dish feel special.
Tangy Lime & Chili
Serve with lime wedges for a zesty contrast—squeeze fresh lime over each portion before eating. For heat lovers, offer chili crisp on the side. I also drizzle chili oil (like Lao Gan Ma) over the finished dish for a smoky, spicy finish.
The acidity cuts through the richness beautifully. 🍋
Sweet & Smoky Variations
For a dessert-inspired twist, add 1 tsp vanilla extract and ½ cup pineapple juice to the braising liquid. For smoky depth, use liquid smoke (¼ tsp) in the sauce base. My favorite unexpected pairing? A sprinkle of toasted coconut flakes on top—it adds texture and complements the coconut milk beautifully.
Storage-Friendly Sauce
This sauce freezes perfectly! Cool completely, then store in airtight containers for up to 3 months. Reheat gently on the stovetop with a splash of water to restore creaminess.
For leftovers, I often use the sauce as a base for pork fried rice or noodle bowls—it's that versatile. 💫
Nutrition facts
Frequently asked questions
Can I substitute regular milk for coconut milk in this recipe?
While you can technically use regular milk, I don't recommend it for this dish. Coconut milk provides the rich, velvety texture and natural sweetness that complements the pork perfectly. Regular milk would make the sauce thinner and less flavorful. If you're avoiding coconut, try a heavy cream or evaporated milk blend for a similar richness.
How do I prevent the pork from becoming dry during braising?
Proper searing and slow cooking are key! Always pat the pork dry before searing to get that perfect crust, then braise on medium-low heat with the lid on. The coconut milk helps keep it moist, but never rush the cooking time—pork needs at least 1 hour 30 minutes to become tender. If the sauce reduces too quickly, add 2-3 tablespoons of water to maintain moisture.
What other cuts of pork work well in this recipe?
Pork shoulder is ideal for its fat content and tenderness when braised, but you can also use pork butt or even pork loin (though it may cook faster). For tougher cuts like pork shoulder, the long braising time is essential. If using pork loin, reduce cooking time to 45-60 minutes to avoid overcooking. Always cut into 2-inch chunks for even cooking.
Can I make this recipe in a slow cooker?
Sear the pork first as directed, then transfer everything (including the celery crowns) to your slow cooker. Cook on low for 6-7 hours or high for 3-4 hours. The celery crowns will crisp up nicely in the residual heat. Finish by shredding the pork in the slow cooker and adjusting seasoning. The coconut milk sauce will be even creamier from the gentle cooking.
What if I can't find celery crowns or whole celery stalks?
No problem! Simply slice regular celery into 1/4-inch thick half-moons or lengthwise strips. For crispy texture, toss them in 1 tbsp coconut oil and roast at 425°F for 10-12 minutes until golden. While not exactly the same as crowns, they'll still add great texture and flavor to your dish.
