
San choy bow started as a Cantonese banquet dish and has become a popular appetizer in Western Chinese restaurants, usually served as bite sized wraps at the start of a meal. The pork is minced small so it stays tender and juicy, while water chestnuts and red pepper give the filling its crunch. If you want a meat free version, my tofu lettuce wraps use the same idea with a different filling.
I like making this recipe most often when friends come over, because it turns dinner a fun activity everyone does with their hands. I set the warm pork filling, the lettuce leaves, the peanuts, and the sauces in the middle of the table and let each person wrap their own. My son skips the lettuce and eats the filling plain over rice, which is his own small version of the same meal.
The cooking process is pretty easy once everything is chopped. I brown the pork first so it takes on color, cook the aromatics next to it, then stir in the sauce and the vegetables at the end so they stay crisp, all in about 25 minutes from pan to table. If you want an appetizer that gets everyone reaching across the table, put this one together using the steps below.

Ingredients
I love to make San choy bow at home because it is extremely fast and easy to make and uses mostly pantry ingredients.

Brown sauce: I mix the sauce before I turn on the heat so it goes in as one pour. Oyster sauce and Shaoxing wine give it a savory depth, hoisin adds the light sweetness, and a little light soy sauce with a touch of dark soy sauce rounds out the color and the salt. Black pepper keeps it from tasting flat.
Pork and aromatics: I use ground pork because it stays juicy and takes on the sauce well. Minced onion, garlic, and ginger go in right after the pork browns so they cook in the pork fat.
The crunch: Water chestnuts are the one thing I would not skip here, since their crispness gives the filling its texture. I dice them small along with red pepper so every spoonful has some crunch. If I cannot find water chestnuts, canned bamboo shoots work in their place.
Wraps and toppings: I use whole lettuce leaves as the wrap, and any sturdy variety like iceberg, butterhead, or romaine holds the filling well. Chopped roasted peanuts and sliced green onions go on top, and I put chili garlic sauce on the table for anyone who wants heat.
How to Make
1. Mix the sauce: Add all the sauce ingredients to a small bowl and stir until well combined. I do this first so the sauce is ready to pour when the pork is browned.
2. Brown the pork: Heat the oil in a large skillet over medium-high heat until hot. Add the ground pork and spread it into an even layer. Cook without touching until the bottom is browned, 2 to 3 minutes.

3. Chop and flip: Flip the pork and chop it into smaller pieces. Cook until the other side turns golden, then move the pork to one side of the pan.
4. Cook the aromatics: Add the remaining oil, onion, garlic, and ginger to the empty side of the pan. Stir and cook for 2 minutes, then mix everything together.

5. Add the vegetables: Add the water chestnuts and red pepper. Stir and cook for another 2 minutes, until the vegetables soften slightly but stay crisp. Transfer everything to a large bowl.

6. Assemble and serve: Spoon the pork filling onto a lettuce leaf. Top with roasted peanuts and green onions. Drizzle chili garlic sauce or your favorite hot sauce over the top if you want it spicy, then wrap and eat.

My Cooking Tips
Chop everything first: The cooking moves fast, so I mix the sauce and dice all the vegetables before the pan goes on. Once the pork hits the heat there is no time to stop and prep.
Brown the pork before stirring: I let the pork sit untouched until the bottom is browned before I break it up. That color is where a lot of the savory flavor comes from, and rushing this step leaves the filling pale and steamed instead of browned.
Add the vegetables last: I stir in the water chestnuts and pepper at the very end and cook them briefly. They should stay crisp, not turn soft, since the crunch is the point of the dish.
Cool the filling before wrapping: I let the filling rest a couple of minutes off the heat before serving. Piping hot filling wilts the lettuce too fast and makes the wraps hard to hold, while a warm filling keeps the leaves crisp under it.
Prep the components ahead for a party: When friends are coming, I cook the filling earlier in the day and rewarm it before serving, and I keep the lettuce washed and chilled. That way I only set out the platter when people arrive.
How to Serve
I serve san choy bow the interactive way, with the warm filling in a bowl, a stack of lettuce leaves, and the peanuts and green onions in small dishes so everyone wraps their own at the table. For a bigger meal, I spoon the same filling over steamed rice to make a rice bowl, or pile it on a bowl of soy sauce noodles so it turns into a full dinner. I keep homemade hoisin sauce and chili garlic sauce on the table for anyone who wants to adjust their own portion.
When I serve this as the opener for a full dinner, I keep the rest of the table light and varied. A bowl of egg drop soup alongside gives everyone something warm to sip while they wrap, and a cold vegetable dish rounds things out without competing with the pork. Since the wraps are easy to eat standing up, they also work well as a starter when friends arrive and dinner is still on the stove.
Frequently Ask Questions
Can I use ground chicken instead of pork?
Yes, ground chicken or turkey both work, though they are leaner than pork so the filling turns out a little less juicy. I add an extra splash of oil to the pan and take care not to overcook the meat so it stays tender. The sauce and the water chestnuts do most of the flavor and texture work, so the wraps still taste right with a lighter meat.
Why is my filling watery?
Usually this happens when the vegetables cook too long or the pan is not hot enough, so they release water instead of staying crisp. I keep the heat high and cook the water chestnuts and pepper for only a couple of minutes at the end. If there is any liquid in the bowl, I drain it before spooning the filling into the lettuce.
How do I keep the lettuce leaves from tearing?
I separate the leaves carefully and trim off the tough base so each one cups the filling. Chilling the leaves in cold water for a few minutes makes them firmer and easier to fill without splitting. If a leaf is too large or floppy, I stack two smaller pieces or tear it down to a size that holds a single spoonful.
How long does the pork filling keep in the fridge and freezer?
The cooked filling keeps in an airtight container in the refrigerator for a few days, and I rewarm it in a hot pan so it does not steam and go soft. It also freezes well, so I portion it into freezer bags for meal prep and thaw it in the fridge before reheating. I always store the filling separately from the lettuce, since the leaves do not keep once they are filled.
Want to Save This Recipe?
Enter your email below & we’ll send it to your inbox. Plus get great new recipes from us every week!
Watch video

Pork Lettuce Wrap (San Choy Bow)
Ingredients
Sauce
- 2 tablespoons oyster sauce
- 1 tablespoon hoisin sauce
- 1 tablespoon Shaoxing wine (or dry sherry)
- 1 tablespoon light soy sauce (or soy sauce)
- 1 teaspoon dark soy sauce (or soy sauce)
- 1/4 teaspoon black pepper
Filling
- 1 1/2 tablespoon peanut oil
- 1 pound ground pork
- 1 yellow onion , minced
- 2 cloves garlic , minced
- 1 tablespoon miced ginger , minced
- 1 can (3.5oz) water chestnuts , small diced
- 1 red pepper , small diced
Wrap and topping options
- 10 to 12 lettuce leaves (Iceberg, Bibb, Butterhead, or Romaine)
- 1/4 cup roasted peanuts , chopped
- green onions , thinly sliced
- Chili garlic sauce (or your favorite hot sauce)
Instructions
- For the sauce: Add all the sauce ingredients into a small bowl and stir to mix well.
- To make the filling: Heat 1 tablespoon of oil in a large skillet over medium-high heat until hot. Add the ground pork and spread into an even layer. Cook without touching until the bottom is browned, 2 to 3 minutes. Flip the pork and chop into smaller pieces. Cook until the other side turns golden. Move the pork to one side of the pan.
- Add the remaining 1/2 tablespoon of oil, onion, garlic and ginger to the other side of the pan. Stir and cook for 2 minutes. Then mix everything together.
- Add the water chestnut and the red pepper. Stir and cook for another 2 minutes, until the vegetables soften. Transfer everything to a large bowl.
- To serve and eat: Add a spoonful of the pork filling onto a lettuce leaf. Add some roasted peanuts and green onions. Drizzle a bit of chili garlic sauce or your favorite hot sauce for a spicy taste, if desired. Enjoy as an appetizer.
Nutrition
Did you make this recipe?
I’d love to hear how it turned out for you! Please take a moment to leave a 5-star rating ⭐️ and share your thoughts in the comments further down the page. It really helps others discover the recipe too.
Shez
Excellent san Choy bow recipe with perfect balance of flavour. I added baby sweet corn and carrot instead of red capsicum to accommodate fussy eaters. Delicious. 🙏🏼
Diane
Hi! I just found your website and am excited about trying your recipes. They sound wonderful! I am, however, highly allergic to oysters. Is there anything I can substitute for oyster sauce and still get an authentic tasting dish? Thanks!
Maggie Zhu
There is a vegetarian version of oyster sauce that is made with mushrooms. I think it produces the most similar taste.
The other possibility is, replace the 2 tablespoons of oyster sauce with 1 tablespoon light soy sauce + 1 tablespoon hoisin sauce. The taste of the dish will be different but should still be good.
sellyg
loved this recipe! super easy but I wouldn’t say quick unless your knife skills are that of a pro chef. lots of chopping but worth it for a delicious and healthyish meal. one note: the recipe at the bottom does not state what to do with the sauce and I was pretty confused for a bit. then I scrolled up to the long form section of the post and realized it’s supposed to be mixed in with the meat. sharing here in case anyone else is confused.
Debba
Step 3 says add “oil, onion, CARROT, garlic . . .” and no carrot is mentioned in the ingredients list. FYI
Maggie Zhu
Sorry about this! Just updated the recipe.
Vicki Vernig
Directions say to mince mushrooms….there are no mushrooms in the ingredient list.
Maggie Zhu
Sorry for the confusion! I originally included it, but ended up not using it in the final recipe because it’s a bit overpowering. Just updated the recipe and now it’s correct.
Jack
Thanks, nice recipe. Jicama would work as well as a substitute for water chestnuts/bamboo shoots. I bet that black bean sauce would be a nice match too.
Maggie Zhu
Oh yes definitely! I don’t use it very often but I think texture-wise they are quite similar. And yes, black bean sauce definitely works in this recipe!
Elizabeth
Th ingredients listed in the instructions are not the same as those shown or listed in the ingredients list. I think you may have included instructions for a different recipe.
Maggie Zhu
Sorry for the confusion! I originally included it, but ended up not using it in the final recipe because it’s a bit overpowering. Just updated the recipe and now it’s correct.
Eileen
You say how to chop the shitake mushrooms in the instruction but they are not on the ingredient list or in the cooking instructions
Maggie Zhu
Sorry for the confusion! I originally included it, but ended up not using it in the final recipe because it’s a bit overpowering. Just updated the recipe and now it’s correct.
Gary
Could this be made with char szchu?….excuse me spelling. Though I guess grond pork would be best…..what say you?….Thanks.
Maggie Zhu
I think you’re talking about char siu pork – I think you probably can and use them if you finely chop it. Although I think ground pork is easier and faster to make, and the result is great 🙂
Gary
Thanks Maggie…..you’re right, just went out to buy some ground pork. I’ll use the char siu for fried rice or something else.
Maggie Zhu
Sounds like a good plan!
I do have some char siu recipes if you’re interested:
Char siu fried rice: https://omnivorescookbook.com/xo-fried-rice/
Char siu fried noodles: https://omnivorescookbook.com/pork-lo-mein