Lion’s Head Meatballs (Chinese Braised Pork, 35g Protein)

Lion’s head meatballs are the giant, pillowy pork meatballs braised over napa cabbage that show up at Shanghainese family tables, and this leaner version runs about 35g of protein per serving. Four fist-sized meatballs feed four people, each one soft enough to cut with a spoon. The name comes from the idea that a big meatball ringed by cabbage looks a little like a lion’s mane, and the size is the point, not a gimmick.
Most recipes build these from fatty pork so they stay tender, then deep fry them before braising. In our kitchen I do it differently: 90% lean pork, a few egg whites, and one technique that keeps them juicy without the fat. You get the same wobble and the same savory broth for a fraction of the calories.
They are also a quiet meal-prep winner. The meatballs hold up in the fridge for days and reheat in their own broth without drying out, which is more than I can say for most lean-protein dinners.
Why this works
Two things make or break these. The first is how you mix the meat. Stirring the mince hard in one single direction for a couple of minutes lines up the myosin proteins into strands, and that is what gives the meatballs their signature springy bounce instead of a crumbly texture. The second is size. Shaping four large meatballs rather than a dozen small ones means less surface area drying out, so the centers stay moist through 40 minutes of braising. The egg whites and a little cornstarch bind everything without adding fat, and the water chestnuts keep that gentle crunch you expect. A soft brown before the braise sets a skin so they hold their shape, but you skip the deep fry entirely.
Homemade vs takeout
This is a restaurant dish more than a takeout one, but the contrast is the same story. A typical restaurant serving of braised pork meatballs starts with fatty pork (often 70/30, sometimes with added fatback), gets deep fried, and sits in a richer, oilier gravy, so a similar portion realistically lands somewhere around 650 calories and closer to 22g of protein. Those figures are honest estimates for a standard portion, not lab numbers, since we did not measure a restaurant’s plate. Our version comes in at about 410 calories with 35g of protein per serving, because leaner pork and no deep fry cut the fat hard while the meat load stays high. More protein, meaningfully fewer calories, same comfort.
Ingredient notes
Ground pork at 90% lean is the sweet spot here. Go much leaner and the meatballs tighten up; go fattier and you lose the calorie advantage that makes this worth posting. Napa cabbage is not a garnish, it is the bed the meatballs braise on and it soaks up the broth, so do not swap it for a firmer cabbage that will not soften the same way. Water chestnuts are traditional and worth it for texture, but finely diced celery or jicama will stand in for the crunch. Shaoxing wine adds the round, slightly nutty depth of a real braise; dry sherry is the closest easy substitute, and in a pinch you can leave it out. Dark soy is there purely for color, so if you only keep light soy on hand, the dish just looks a shade paler.
If lean Chinese pork is your lane, this sits comfortably next to a few others on the site. My lean twice cooked pork (hui guo rou) hits a similar goal from a stir-fry angle, the lean sweet and sour pork lightens up a takeout classic, and moo shu pork is the one I make when I want something to wrap in pancakes.

Lion's Head Meatballs (Chinese Braised Pork Meatballs)
Ingredients
Method
- In a large bowl combine the pork, egg whites, water chestnuts, 2 tablespoons of the cornstarch, Shaoxing wine, 2 tablespoons of the light soy sauce, ginger, garlic, scallion whites, sesame oil and white pepper. Stir hard in one direction with a spatula or your hand for 2 to 3 minutes, until the mixture turns sticky and paste-like and starts pulling away from the bowl.
- That one-direction stirring is the whole trick. Working the mince in a single direction lines up the proteins so the meatballs turn springy and bounce instead of falling apart, the texture that gives lion's head its name.
- Divide the mixture into 4 and shape each portion into one big meatball, about the size of a tennis ball. Wet your hands and toss each ball firmly between your palms a few times to compact it and knock out air pockets. The large size is not for show, it is what keeps the centers juicy through the braise.
- Heat the neutral oil in a wide Dutch oven or deep skillet over medium-high. Gently lower in the meatballs and brown them on two or three sides, about 4 minutes total, just to set a skin. They will not be cooked through and they are fragile at this stage, so turn them carefully with two spoons. Lift them out to a plate.
- Add the napa cabbage to the same pot and stir for about 2 minutes, until it starts to wilt and picks up the browned bits stuck to the bottom. Spread it into an even bed.
- Pour in the chicken broth, the remaining 1 tablespoon light soy sauce, the oyster sauce, dark soy sauce and sugar. Nestle the meatballs on top of the cabbage. Bring to a gentle simmer, cover, and cook on low for 40 minutes, spooning some broth over the tops once or twice along the way.
- Lift the meatballs and cabbage into a serving bowl. Stir the remaining 1 tablespoon cornstarch into 2 tablespoons cold water, whisk it into the simmering broth, and cook for about a minute until the sauce lightly coats a spoon. Pour it over the meatballs, scatter with the scallion greens, and serve with rice.
Scale it to your goal
Cutting: skip the searing oil and poach the meatballs straight in the broth, then serve them over just the cabbage with no rice. That lands around 360 calories a serving while holding the full 35g of protein.
Bulking: serve each meatball over a cup of steamed rice with a soft-boiled egg on top. That pushes it to roughly 700 calories and about 42g of protein per bowl.
Leaner swap: use 96% lean ground pork and drop the searing oil for about 340 calories and 12g of fat per serving, still at 35g protein. The mixture gets a touch firmer, so add one extra egg white to keep the meatballs tender.
Tips and storage
These are built for leftovers. Store the meatballs in their broth and cabbage for up to 4 days in the fridge, keeping the rice separate so nothing turns soggy, and reheat gently on the stove or in the microwave with a splash of water to loosen the sauce. They freeze well too, up to 3 months, and I like to freeze them in their broth so they thaw back to juicy rather than dry. If you want to prep ahead without cooking, shape the raw meatballs, cover, and refrigerate them for up to a day before braising, which actually helps them hold together even better. One make-ahead warning: salt the mince only when you are ready to cook, because seasoning it far in advance firms up the texture more than you want.