Main Courses
This Milk Street sweet and sour pork recipe delivers the perfect balance of crispy bites and tangy-sweet sauce—just like your favorite Chinese takeout, but better. 🔥 I developed this version after years of perfecting the velveting technique, which keeps the pork tender while creating that signature crispy exterior.
The sauce is where the magic happens: a harmonious blend of vinegar, sugar, and ketchup that caramelizes into a glossy, addictive glaze.
The secret to restaurant-quality results at home lies in two key steps: first, marinating the pork in a cornstarch slurry to achieve that velvety texture, and second, frying it in small batches to maintain even crispiness.
I've adapted the classic technique to work with a quick stir-fry method, so you won't spend hours in the kitchen. The sauce reduces while the pork rests, allowing all those flavors to meld into something truly special.
What you'll end up with is a plate of golden-brown pork cubes with a crispy crust and tender interior, bathed in a glossy sauce that's perfectly balanced between sweet and tangy. Each bite delivers that satisfying contrast of textures and flavors that makes this dish so universally loved.
The sauce clings beautifully to the pork, creating a dish that's as impressive to serve as it is delicious to eat.
Serve this over steamed jasmine rice or with egg rolls for a complete meal that feels both comforting and sophisticated. The leftovers reheat beautifully too, making this an excellent recipe for meal prep. Let's get cooking—this dish is a game-changer for weeknight dinners.
Ingredients for milk street sweet and sour pork
Pork, cornstarch, and vinegar transform into crispy bites with a tangy-sweet glaze—just like takeout but better.
| Ingredient | Amount | Notes |
|---|---|---|
| Pork Shoulder 🍖 | 1 ½ lb | Cut into 1-inch cubes, boneless |
| All-Purpose Flour 🌾 | ½ cup | For dredging pork cubes |
| Cornstarch 🌾 | ½ cup | For velveting slurry |
| Vegetable Oil 🫒 | 2 cups | High smoke point preferred |
| White Vinegar 🍶 | ½ cup | Distilled preferred |
| Granulated Sugar 🍚 | ½ cup | Light brown sugar works too |
| Ketchup 🍅 | ½ cup | Heinz preferred for consistency |
| Soy Sauce 🥢 | ⅓ cup | Low sodium preferred |
| Garlic Cloves 🧄 | 4 cloves | Minced for sauce |
| Green Onions 🧅 | ¼ cup | Sliced, for garnish |
| Sesame Oil 🫒 | 1 tbsp | Toasted for aroma |
| Salt 🧂 | 1 tsp | Kosher preferred |
| Black Pepper 🌶️ | ½ tsp | Freshly ground |
| Red Pepper Flakes 🌶️ | ½ tsp | Optional for heat |
The pork shoulder is your secret weapon here—it stays tender while developing that signature crispy crust. Ask your butcher to cut it into 1-inch cubes if they won't do it for you; otherwise, grab a sharp knife and do it yourself. For the cornstarch slurry, use Diamond Crystal if you're picky about texture—it's finer than most store brands and gives that velvety finish. If you can't find pork shoulder, pork loin works in a pinch, but it's leaner so watch your cooking times. The oil is where the magic happens—avocado oil or peanut oil have high smoke points and won't overpower the dish.
No white vinegar? Rice vinegar or apple cider vinegar work just as well—they'll give a slightly different tang, but still delicious. Swapping sugar for honey? Use half the amount and reduce the sauce longer to compensate. The ketchup is non-negotiable for that classic tangy-sweet balance, but if you're avoiding it, tomato paste plus a splash of vinegar gets you close. For extra depth, toast the garlic in the oil before adding it to the sauce—it adds a nutty richness that takes this from good to restaurant-quality. The sesame oil is purely for aroma, so use sparingly—just enough to make your kitchen smell amazing.
This sauce gets better as it sits, so make it a day ahead if you can. Store it in an airtight container in the fridge for up to 5 days, or freeze portions for 3 months. The pork reheats beautifully—just warm it in a skillet with a splash of water to keep it from drying out. For meal prep, I portion the sauce separately and reheat it with the pork to keep everything glossy. The leftovers make fantastic lunchbox meals—just pack the rice and pork together, and the sauce stays clingy.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this recipe because it’s all in one skillet—no messy batches of batter or separate frying. The pork shoulder gets tender while the sauce thickens right there, and honestly? That crispy crust from the cornstarch coating is the best part.
- Tangy Crunch: The vinegar cut isn’t just sharp—it’s bright, balancing the sweetness perfectly. And that flour-cornstarch mix? It gives the pork this addictive crunch that disappears the second you bite in, leaving behind juicy, caramelized pork.
- Leftover Hero: Between us, this dish begs to be made in bulk. The sauce clings to the pork like glue, so reheating is a breeze—just toss it in a pan or microwave, and it’s still just as good the next day. (Yes, even on a Tuesday night.)
- Budget Win: Pork shoulder is cheap, and this recipe stretches it far without skimping on flavor. I’ve fed six people for under $15 with leftovers, and no one ever guessed it was the budget-friendly cut. That’s the kind of secret weapon I keep.
Step-by-step instructions for sweet and sour pork with crispy bites
Here's how to achieve that perfect balance of tender, crispy pork and glossy tangy-sweet sauce.
👨🍳 Step 1: Prep the Pork and Create the Velveting Slurry
Cut the 1.5 lb pork shoulder into 1-inch cubes and pat them completely dry with paper towels. I like to work in batches—wet pork won't crisp properly, so this step is non-negotiable. In a bowl, whisk together the 0.5 cup all-purpose flour, 0.5 cup cornstarch, 1 tsp salt, and 0.5 tsp black pepper. This dry mix is your secret weapon for ultra-crispy bites.
In another bowl, combine 0.5 cup white vinegar, 0.5 cup ketchup, 0.33 cup soy sauce, and 0.5 cup granulated sugar. This slurry will tenderize the pork while adding depth of flavor. The acidity in the vinegar breaks down the proteins, ensuring fork-tender results. Let the pork cubes soak in the slurry for 20 minutes at room temperature—this guarantees even cooking and maximum flavor absorption.
🔥 Step 2: Double-Fry for Perfect Texture
Heat 1 cup vegetable oil in a deep skillet or Dutch oven over medium-high heat until it reaches 350°F—use a thermometer for accuracy. Working in batches (don't overcrowd!), add the pork cubes and fry for 3-4 minutes until they turn light golden brown. This first fry sets the foundation for crispiness. Transfer the pork to a paper towel-lined plate to drain excess oil.
Now here's the pro move: increase the oil temperature to 375°F and give those pork cubes a second fry. Return them to the hot oil and cook for another 2-3 minutes until they're deep golden brown and crispy all over. The high heat during the second fry creates that satisfying crunch we're after. Once done, drain again on paper towels and keep them warm in a 200°F oven while you make the sauce.
🍳 Step 3: Build the Tangy-Sweet Sauce
In the same skillet (no need to clean it—the browned bits add flavor), reduce the heat to medium and add 1 tbsp sesame oil. Toss in the 4 minced garlic cloves and cook for 30 seconds until fragrant—don't let them brown or they'll turn bitter. Pour in the remaining slurry from Step 1 and bring to a gentle simmer.
Let the sauce reduce for 5-6 minutes until it thickens slightly and coats the back of a spoon. You're aiming for a glossy, syrupy consistency that clings beautifully to the pork. If it reduces too quickly, add 1-2 tablespoons water to balance the texture. Taste and adjust seasoning—add a pinch more sugar if you want it sweeter or a splash more vinegar for extra tang.
🥘 Step 4: Finish and Serve with Crispy Perfection
Return the crispy pork cubes to the skillet with the sauce and toss gently to coat them evenly. Let everything simmer together for 2-3 minutes until the pork absorbs the sauce's flavors. The residual heat will keep the pork crispy while infusing it with that signature tangy-sweet glaze.
Garnish with 0.25 cup sliced green onions and, if using, sprinkle with 0.5 tsp red pepper flakes for a subtle kick. Serve immediately over steamed rice or noodles—this dish is best enjoyed while the pork is still crispy. The contrast of the crunchy exterior with the tender interior and glossy sauce makes every bite irresistible.
Pro Tips For Making Milk Street Sweet And Sour Pork
- VELVET THE PORK: Use a meat mallet or rolling pin to pound the pork shoulder to an even ½-inch thickness—this guarantees it cooks through without drying out while keeping the edges crispy. I learned this the hard way when my first batch turned out chewy in the center because I skipped it.
- DON’T SKIP THE DOUBLE-DREDGE: Toss the pork in the flour-cornstarch mix twice—once before frying, once after resting. The second coat seals in flavor and ensures that crust sticks like it’s supposed to. Sounds tedious, but it’s the difference between "meh" and "wow."
- WATCH THE VINEGAR: Add the white vinegar to the sauce last, right before serving, or it’ll cook off and leave your dish tasting flat. If you’re prepping ahead, keep it separate and stir it in just before plating—trust me, your taste buds will notice.
- FRY IN BATCHES: Crowd the pan, and you’ll steam the pork instead of sear it. Fry in two batches over medium-high heat with enough oil (about ½ inch deep) to coat the meat without splattering everywhere. This isn’t the prettiest method, but it’s the tastiest.
Wine and beer pairings for this recipe
Crispy Pork & Vinegar
This dish pairs beautifully with dry Riesling from Germany’s Mosel region—its crisp acidity cuts through the sweetness while complementing the pork’s richness. I love a Keller Riesling Kabinett ($15-$20) for its bright citrus notes that refresh your palate between bites.
The slight effervescence in some Rieslings also cleanses the palate, making each forkful feel fresh. 🍷
Malty Beer Balance
For beer lovers, a Belgian-style Dubbel like Westmalle Dubbel offers deep caramel and dark fruit flavors that mirror the sauce’s sweet-tangy profile. The maltiness balances the pork’s crispiness while the subtle spice notes enhance the dish’s complexity.
If you prefer lighter options, a German Helles Lager (like Paulaner) provides a neutral backdrop that lets the pork shine.
Sweet Sparkle Pairing
My go-to for special occasions is a Prosecco or Cava—just 2-3 ounces poured over ice with a splash of soda water creates a sparkling cocktail that mirrors the dish’s sweet-tangy balance.
The bubbles enhance the crispy texture contrast while the slight sweetness complements the sauce. Garnish with a green onion twist for visual harmony. ✨
Regional Wine Twist
In the Southeast, where I grew up, we’d often pair this with Moscato d’Asti—its honeyed sweetness and light fizz make it a perfect match for the dish’s flavors.
The Italian wine’s acidity prevents the sugar from feeling cloying, while its floral notes add another layer of complexity. Look for a Saracco Moscato for the classic profile.
Non-Alcoholic Options
For a refreshing non-alcoholic match, try sparkling apple cider chilled to 40°F—the tartness and effervescence echo the dish’s vinegar notes while the apple’s sweetness complements the sauce.
Add a cinnamon stick for garnish to tie into the pork’s savory profile. This works especially well for family gatherings where kids are joining in.
Nutrition facts
Frequently asked questions
Why does this recipe use both flour and cornstarch?
The flour creates a light coating for initial browning, while the cornstarch is the secret to that signature velvety texture. Together they form a crispy exterior while keeping the interior tender. Think of it as a two-step crust system—first for color, second for texture.
Can I make this with chicken instead of pork?
Use boneless chicken thighs (they're juicier than breasts) and reduce the cooking time by about 2-3 minutes per fry. Chicken benefits from the same velveting technique, but watch it closely—it cooks faster than pork. The sauce will still cling beautifully to the protein.
How do I fix soggy pork after reheating?
Never reheat in the microwave! Instead, warm in a skillet over medium heat with just a splash of water or oil. The steam helps maintain crispiness. For extra crunch, broil for 1-2 minutes at the end—just watch it like a hawk to avoid burning.
What's the best way to store leftovers?
Keep the pork and sauce separate in airtight containers. The pork stays crispy for 3-4 days in the fridge, while the sauce lasts 5 days. Reheat them separately—pork in the skillet, sauce in a saucepan—to preserve texture. Freeze portions for 3 months
Can I make this sauce ahead of time?
Yes! Make the sauce 1-2 days ahead and store it refrigerated. The flavors deepen as it sits, and it thickens beautifully when reheated. Just add a splash of water if it seems too stiff. The pork is best made fresh, but you can prep the marinade ahead and cook it the next day.
