Vietnamese Shaking Beef (Bo Luc Lac, 38g Protein)

Bo luc lac is the Vietnamese steakhouse dish you can make at home with one very hot pan and about ten minutes of actual cooking. My version gets you 38g of protein per serving from lean top sirloin, seared in cubes and glossed with a garlicky oyster sauce glaze.
The name means shaking beef, after the way you shake the pan so the cubes roll around and pick up a hard sear on every side. The beef lands on a bed of watercress, and the hot pan juices half-wilt the greens. Steak and salad on one plate, no extra dishes.
I keep coming back to beef cube recipes because they cook faster and stay juicier than sliced stir fries like my black pepper beef stir fry. If you like meat over greens, this sits in the same family as Thai waterfall beef salad, just richer and more buttery.
Why this works
Two things make or break this dish: dry meat and a genuinely hot pan. Pat the cubes dry before marinating and cook in two batches, because a crowded pan steams the beef instead of searing it. The butter goes in at the end, where it melts into the marinade sugars clinging to the beef and turns them into a glossy sauce instead of burning. Watercress is not just garnish here. Its pepperiness does the same job a sauce would, so you do not need anything heavier.
Ingredient notes
Traditional bo luc lac uses filet or another tender cut. Top sirloin is my pick for weeknights: leaner, a third of the price, and plenty tender if you do not cook it past medium. Cut your own cubes from a whole steak rather than buying pre-cut stew meat, which comes from tougher cuts.
For fish sauce, Red Boat or Three Crabs are the brands I recommend to US readers. Any supermarket oyster sauce works, though Lee Kum Kee Premium has noticeably more depth than the budget line. If you cannot find watercress, arugula gives you the same peppery bite.

Vietnamese Shaking Beef (Bo Luc Lac)
Ingredients
Method
- Pat the beef cubes very dry with paper towels. Toss with the oyster sauce, soy sauce, fish sauce, sugar, half the garlic, and 1 tsp of the black pepper. Marinate at room temperature for 20 to 30 minutes while you prep everything else.
- Make the dipping salt: stir the salt and remaining 1/2 tsp black pepper together in a small saucer, then squeeze in the juice of half the lime. Cut the rest of the lime into wedges.
- Arrange the watercress, cherry tomatoes, and most of the red onion on a serving platter. Keep a little onion back for the pan.
- Heat a wok or heavy skillet over the highest heat until it just starts to smoke. Add the oil, then half the beef in a single layer. Leave it alone for 60 to 90 seconds to build a crust, then shake the pan and sear another 1 to 2 minutes until browned on most sides but still pink inside. Transfer to a plate and repeat with the second batch.
- Return all the beef to the pan with the reserved onion. Add the butter and remaining garlic and toss for 30 seconds until the beef is glossy and the garlic smells toasted, not burnt.
- Pile the beef and pan juices over the salad. Rest 2 minutes so the juices dress the greens, then serve with the lime pepper salt for dipping.
Tips and storage
Do not skip the two-batch sear, even if it feels fussy. It is the difference between browned beef and grey beef. And pull the pan off the heat the moment the garlic smells toasted in the final toss, because burnt garlic will take over the whole dish.
A cup of steamed jasmine rice on the side adds about 45g of carbs if you are eating this after training. The recipe as written is low carb on its own.
Leftovers keep 3 days in the fridge. The beef is honestly good cold, straight from the container over fresh greens, the same way I eat leftover Vietnamese caramel salmon with cold rice. If you do reheat it, use a hot pan for under a minute. The microwave will push it past medium and toughen it.
Craving another fast, high-heat beef pan dinner? Try my Thai basil beef (pad kra pao), ready in about 25 minutes with 40g of protein.