Pillowy, snow-white steamed buns packed with sticky-sweet barbecue pork, built the way a neighborhood Cantonese BBQ house does it: real roast pork first, then a glossy oyster-hoisin gravy that sets up cold. Split the work across two days — roast and chill the filling one evening, mix the milky bao dough the next — and you'll get bakery-case buns without a bakery. They freeze and re-steam beautifully.
Ingredients
Char Siu Pork (Day 1)
1.5 lb boneless pork shoulder, cut into 1-inch-thick slabs
3 tbsp hoisin sauce
2 tbsp oyster sauce
2 tbsp soy sauce
2 tbsp honey, plus 1 tbsp for glazing
1 tbsp Shaoxing wine or dry sherry
1 tbsp light brown sugar
2 tsp toasted sesame oil
3 cloves garlic, grated
0.5 tsp five-spice powder
0.25 tsp ground white pepper
1 tbsp ketchup or mashed red fermented bean curd, for color
Filling Gravy (Day 1)
1 tbsp neutral oil
1 cup finely diced yellow onion
2 tbsp oyster sauce
1 tbsp hoisin sauce
1 tbsp soy sauce
1 tbsp granulated sugar
0.5 tsp dark soy sauce (optional, for color)
0.75 cup chicken stock or water
1.5 tbsp cornstarch mixed with 3 tbsp cold water
1 tsp toasted sesame oil
3 scallions, thinly sliced
Milky Bao Dough (Day 2)
2.5 cups all-purpose flour (300 g), plus more for dusting
0.25 cup cornstarch (35 g)
0.25 cup granulated sugar (50 g)
2.25 tsp instant yeast
0.5 tsp fine salt
0.75 cup whole milk, warmed to 100°F
2 tbsp neutral oil or softened lard
1.5 tsp baking powder
1 tsp distilled white vinegar (optional, for whiteness)
Instructions
DAY 1 — Marinate: Whisk hoisin, oyster sauce, soy sauce, 2 tbsp honey, Shaoxing wine, brown sugar, sesame oil, garlic, five-spice, white pepper, and ketchup in a bowl. Add the pork slabs, turn to coat, cover, and refrigerate at least 4 hours or up to 24 (overnight is best).
DAY 1 — Roast: Heat the oven to 400°F. Set a wire rack over a foil-lined sheet pan and pour 1 cup water into the pan to keep the drippings from burning. Lay the pork on the rack, reserving the marinade. Roast 20 minutes, flip and brush with reserved marinade, then roast 15–20 minutes more, until the edges are lacquered and an instant-read thermometer reads 160°F.
DAY 1 — Glaze and cool: Brush the pork with the remaining 1 tbsp honey and broil 2–3 minutes, watching constantly, until the surface blisters and chars in spots. Rest 15 minutes, then dice into small 1/4-inch cubes — you want cubes, not shreds, for that bakery texture. You should have about 2 1/2 cups.
DAY 1 — Build the filling: Heat 1 tbsp neutral oil in a skillet over medium. Cook the onion 5–6 minutes until soft and translucent but not browned. Add oyster sauce, hoisin, soy sauce, sugar, dark soy, and stock; simmer 2 minutes. Stir the cornstarch slurry and pour it in, whisking, and cook 1 minute until thick and glossy enough to coat a spoon heavily.
DAY 1 — Chill: Off the heat, fold in the diced pork, sesame oil, and scallions. Spread the filling in a shallow dish, cool 20 minutes, then cover and refrigerate at least 4 hours or overnight. Cold, firm filling is the single biggest factor in easy pleating — it should scoop like thick pudding.
DAY 2 — Mix the dough: Whisk flour, cornstarch, sugar, yeast, and salt in a large bowl. Add the warm milk, oil, and vinegar. Stir to a shaggy mass, then knead on an unfloured counter 8–10 minutes by hand (or 6 minutes on medium-low in a stand mixer with the dough hook) until smooth, satiny, and only slightly tacky.
DAY 2 — First rise: Round the dough, place in an oiled bowl, cover, and let rise in a warm spot 60–90 minutes, until doubled and a poked finger leaves a dent that fills back in slowly.
DAY 2 — Knead in the baking powder: Flatten the dough, sprinkle the baking powder over the surface, and knead 3–4 minutes until it's evenly distributed and the dough is tight and smooth again with no streaks. Divide into 12 pieces (about 45 g each), round each one, and cover with a towel. Cut 12 squares of parchment about 3 inches across.
DAY 2 — Fill and pleat: Working with one ball at a time, roll into a 4-inch circle with a thicker center and thin edges. Cup it in your palm, add a heaping 2 tablespoons of cold filling, then pleat the edge around the filling with your thumb and forefinger, rotating as you go, and pinch the top closed. Set seam-side up on a parchment square. Repeat, keeping the rest covered.
DAY 2 — Final proof: Arrange the buns in your steamer baskets, seam-side up, leaving 2 inches between them (they nearly double). Cover and proof 30–40 minutes at room temperature, until visibly puffy and light when nudged.
DAY 2 — Steam: Bring 2 inches of water to a rolling boil in the steamer base, set the baskets on, cover, and steam over medium-high heat for 12 minutes. Turn off the heat and wait 5 full minutes before lifting the lid — a sudden temperature drop wrinkles the tops. Serve hot; steam remaining batches the same way, topping off the water as needed.
Chef's tips
Cold filling is non-negotiable. If it warms up while you're wrapping, slide the bowl back into the fridge for 15 minutes — warm gravy soaks the dough and blows out the seams.
No bamboo steamer? Use a wide pot with a metal steamer insert, and stretch a clean kitchen towel under the lid (tucked up over the top, away from the flame) to catch condensation drips that would pockmark the buns.
To freeze: steam fully, cool completely, then freeze on a tray before bagging. Re-steam from frozen for 8–10 minutes — better than any microwave method.
Store-bought char siu from a Chinese BBQ shop is a legitimate shortcut. Buy 3/4 lb, dice it, and start at the filling-gravy step; the whole Day 1 shrinks to 15 minutes.
Pleating takes practice. If the top won't seal, simply gather and twist it shut, then turn the bun seam-side down on the parchment — nobody will know once it's steamed.
Nutrition (per serving, estimated)
320calories
16gprotein
42gcarbs
10gfat
Estimates only — values vary with brands and portions.
Made with Sprig
Steamed Char Siu Bao (BBQ Pork Buns) was created in Sprig — the AI chef that turns any craving into a complete recipe, plans your week, and shops with one smart list.