Vietnamese Shaking Beef / Bò Lúc Lắc

A classic Vietnamese beef dish of large, deeply seared steak cubes tossed in a glossy oyster, fish and soy glaze with butter, onion and scallions, served with jasmine rice, crisp lettuce, tomato, cucumber, cilantro and lime, the key being a hard, fast sear against cool, fresh sides. Searing well-dried, generously sized cubes in a very hot wok in 2 uncrowded batches, rather than tipping all the beef in at once, is the technique this whole dish depends on for its browned, caramelised edges and juicy centres — an overloaded pan releases moisture and simmers the beef grey, turning shaking beef into braised beef, the same sear-hot-in-batches principle used elsewhere in this collection whenever tender steak meets a short, fierce cook. A short 30-minute marinade, rather than a long soak, is what lets the garlic, oyster sauce and sugar season the beef without leaving it too wet to brown. Melting butter into the pan and returning the beef for only 30–60 seconds is what turns the juices into a thin, glossy glaze instead of a pooling sauce. The payoff is a bowl with real, contrasting character — hot, peppery, caramelised beef and sweet onion against fluffy rice, cool crisp vegetables and bright lime.

Vietnamese Shaking Beef / Bò Lúc Lắc showing glossy caramelised beef cubes with onion and scallions beside jasmine rice, lettuce, tomato, cucumber and lime, on marble surface

Prep Time : 25 min

Total Time : 1 hr 10 min

Servings : 4

Prep Time :

25 min

Total Time :

1 hr 10 min

Servings :

4

Ingredients

For the Beef


• 800g beef steak, such as sirloin, striploin, ribeye or tenderloin, cut into large bite-size cubes, about 2.5–3cm


• 4 garlic cloves, finely minced


• 1½ tbsp oyster sauce


• 1 tbsp fish sauce


• 1 tbsp light soy sauce


• 1½ tsp sugar


• ½ tsp black pepper


• 1 tbsp neutral oil

For the Stir-Fry


• 1½ tbsp neutral oil, divided


• 2 tbsp unsalted butter


• 3 scallions, sliced


• 1 small onion, cut into thin wedges or petals


• A tiny splash of extra fish sauce and a pinch of extra black pepper, to adjust, only if needed

For the Jasmine Rice


• 200g jasmine rice


• 300ml water

For the Fresh Vegetables and Garnish


• 1 small head leaf lettuce, or about 120–150g lettuce leaves


• 2 medium tomatoes, sliced


• ½–1 English cucumber, sliced


• 10–15g cilantro leaves


• 2 limes, cut into wedges


Directions

  1. Marinate the Beef
    Pat the 800g cubed beef very dry with paper towels, trimming any uneven pieces so every cube sits close to 2.5–3cm and cooks at the same rate. In a bowl, combine the 4 minced garlic cloves, 1½ tbsp oyster sauce, 1 tbsp fish sauce, 1 tbsp light soy sauce, 1½ tsp sugar, ½ tsp black pepper and 1 tbsp neutral oil, stirring until the sugar has dissolved. Add the beef and toss until every cube is evenly coated and glossy, with no pool of liquid left in the bottom of the bowl. Cover and marinate for 30 minutes at room temperature if your kitchen is cool, or in the fridge if it needs to wait longer, but never for hours. That short, light marinade is what seasons the surface without making the beef so wet that it steams in the pan.
  2. Cook the Jasmine Rice
    As soon as the beef is marinating, rinse the 200g jasmine rice in cold water 2–3 times, swirling it with your fingers, until the water runs mostly clear, then drain well. Combine the rice and 300ml water in a small saucepan and bring to a boil over medium-high heat. Stir once, cover tightly, reduce to the lowest heat and cook for 12 minutes, then turn off the heat and leave it to stand, still covered, for 10 minutes without lifting the lid. Fluff gently with a fork and keep it covered and warm. The grains should be soft, separate and fully ready before the beef goes anywhere near the wok. That timing matters because shaking beef is best eaten the moment it leaves the pan, while it is still glossy and juicy.
  3. Prep the Vegetables and Bowls
    While the rice cooks, wash the lettuce and dry it thoroughly, tearing any large leaves into manageable pieces. Slice the 2 tomatoes and the ½–1 English cucumber, pick the 10–15g cilantro leaves and cut the 2 limes into wedges. Cut the small onion into thin wedges or separate it into petals, and slice the 3 scallions, setting about a third of the green tops aside for the garnish. Once the rice is fluffed, divide it among 4 bowls or plates and arrange the lettuce, tomato and cucumber beside it, keeping the vegetables cold and crisp. Set the cilantro and lime wedges within reach of the stove. That advance plating is what lets the beef go straight from the wok onto the rice without losing its heat or its gloss.
  4. Sear the Beef
    Heat a wok or large heavy skillet over high heat for 2–3 minutes, until very hot and just beginning to smoke. Add ½ tbsp of the neutral oil and swirl it around the pan. Add half the beef in a single layer and let it sear undisturbed for about 1 minute, until a deep brown crust forms underneath. Then toss or “shake” the pan frequently, cooking for 2–4 minutes in total depending on cube size and preferred doneness, until the outside is deeply browned, the edges look glossy and caramelised and the centres still feel tender when pressed. Transfer to a plate, let the pan reheat fully, then repeat with another ½ tbsp oil and the remaining beef. If the cubes release liquid and start to simmer, the pan is crowded or not hot enough. That fast, uncrowded sear is what browns the beef deeply without overcooking its centre.
  5. Finish With Butter and Scallions
    Reduce the heat slightly to medium-high and add the remaining ½ tbsp neutral oil, which the pan usually needs after 2 batches. Add the onion and stir-fry for 30–60 seconds, just until it softens slightly at the edges but still holds its shape. Add the 2 tbsp unsalted butter and let it melt and foam. Return the beef with any juices from the plate, add the remaining two-thirds of the scallions and toss everything together for 30–60 seconds, just until the beef is coated, glossy and heated through. Taste and adjust with a tiny splash of extra fish sauce or a pinch of extra black pepper only if needed. The sauce should lightly glaze the beef rather than pool in the pan; if it looks watery, toss for a few seconds longer over high heat. That brief final toss is what melts the butter into the juices to form a glaze without cooking the beef any further.
  6. Assemble and Serve
    Spoon the hot shaking beef, onion and every bit of glaze over or beside the rice in each prepared bowl, giving every serving about a quarter of the beef. Scatter over the reserved scallion greens and the cilantro leaves, then tuck the lime wedges alongside. Serve immediately, while the beef is still steaming and the vegetables are still cold and crisp. Squeeze the lime over the beef and vegetables at the table, or wrap bites of beef and tomato in the lettuce leaves. The finished bowl should show deeply browned cubes with a thin, shiny coating, never a pool of thick gravy. That contrast between the hot, rich beef and the cool, crisp vegetables is what makes the dish feel genuinely balanced rather than heavy.

*Notes : 

  • Searing the beef in 2 uncrowded batches deserves genuine recognition as the technique most directly responsible for whether this dish tastes seared or stewed. The recipe’s own warning that “Crowding releases moisture and turns this into braised beef instead of shaking beef” explains why — 800g of cold, marinated cubes drops the pan temperature so sharply that the juices escape and boil, leaving grey, chewy beef with no caramelised edges.
  • Choosing a tender, quick-cooking cut deserves the same attention this technique receives throughout this collection’s other fast steak dishes, because a few minutes of searing is far too short to soften tough muscle. The recipe’s own note that “Chuck or stewing beef is not suitable here” reflects exactly this — sirloin, striploin, ribeye and tenderloin turn juicy in 2–4 minutes, while braising cuts stay genuinely rubbery however hot the wok becomes.
  • Keeping the marinade short and light deserves genuine respect as the detail most directly responsible for the beef browning properly at all. The recipe’s own instruction to “not marinate for hours in a very wet marinade” matters because a long soak draws liquid to the surface and softens it, so the cubes steam in their own juices instead of developing the deep, sticky crust the whole dish is built around.
  • The finished glaze deserves attention as a genuine, checkable readiness cue rather than a loose approximation. The recipe’s own target that “The final sauce should lightly glaze the beef, not pool heavily in the pan” gives a clear test — shiny cubes over an almost dry pan mean the butter and juices have reduced properly, while visible liquid means a few more seconds over high heat are needed.

Why This Recipe Works

This recipe works because each step protects the contrast between hot, caramelised beef and cool, fresh sides. Large, well-dried cubes take a short, light marinade that seasons them without making them wet, so they can brown hard in 2 uncrowded batches while the centres stay tender. The rice cooks and the bowls are plated during the marinade, which means nothing delays the beef once it leaves the wok. Butter, onion and scallions go in only at the end, turning the pan juices into a thin glaze, while crisp lettuce, tomato, cucumber and lime cut through the genuinely savoury, peppery richness.


Ingredient Breakdown

Two-Batch Hard Sear

The critical technique — half the beef at a time keeps the wok genuinely hot enough to caramelise the cubes, not braise them.

Tender Steak Cut (Not Chuck)

The critical ingredient choice — sirloin, striploin, ribeye or tenderloin stays juicy after a fast sear, while stewing cuts stay tough.

Large 2.5–3cm Cubes

The structural choice — generous cubes brown deeply on every side while their centres stay genuinely tender and juicy.

Short Oyster and Fish Sauce Marinade

The flavour foundation — 30 minutes is enough to season the beef with garlic, sugar and pepper without wetting it.

Butter and Scallion Finish

The finishing technique — melted butter and fresh scallions turn the pan juices into a thin, glossy, aromatic glaze.

Cool Fresh Vegetables and Lime

The finishing touch — crisp lettuce, tomato, cucumber and a squeeze of lime cut through the rich, peppery beef.


Flavor Structure Explained 

This Vietnamese shaking beef follows a layered balance model:

  • Soft, neutral foundation (jasmine rice)
  • Savoury, caramelised centrepiece (seared beef, oyster sauce, fish sauce, soy sauce)
  • Sweet, peppery backbone (sugar, black pepper, garlic)
  • Rich, glossy finish (butter, softened onion, scallions)
  • Cool, bright contrast (lettuce, tomato, cucumber, cilantro, lime)

Jasmine rice provides the soft, neutral foundation that catches every drop of glaze. Seared beef, seasoned with oyster, fish and soy sauce, brings the savoury, caramelised centrepiece, while sugar, black pepper and garlic build the sweet, peppery backbone that defines the classic profile. Butter, lightly softened onion and scallions add a rich, glossy finish without ever turning into gravy. Lettuce, tomato, cucumber, cilantro and lime then deliver the cool, bright contrast that ties this shaking beef together.


Common Mistakes to Avoid 

  • Using Chuck or Stewing Beef – This leaves the cubes chewy and rubbery, since a short sear never softens tough muscle. Always choose sirloin, striploin, ribeye or tenderloin.
  • Marinating the Beef for Hours – This makes the surface too wet to brown, so the cubes steam instead of caramelising. Always keep the marinade to about 30 minutes.
  • Crowding the Pan – This releases moisture and simmers the beef grey, turning shaking beef into braised beef. Always sear in 2 batches in a properly preheated, smoking-hot wok.
  • Overcooking the Beef in the Final Toss – This dries out the tender centres, especially with tenderloin or sirloin. Always return the beef for only 30–60 seconds.
  • Searing Before the Bowls Are Ready – This leaves the beef sitting while the rice and vegetables are finished, losing heat and gloss. Always plate the rice and vegetables first.

Variations

Lime-Pepper Dip Version

Serve a small dish of lime juice mixed with salt and black pepper on the side, per the recipe’s own note, for dipping each cube into a sharp, peppery hit of citrus.

Ribeye Version

Use ribeye, one of the cuts the recipe recommends, for richer, more marbled cubes that stay especially juicy and caramelise deeply in the hot wok, balanced by an extra squeeze of lime.

Tenderloin Version

Use tenderloin for the most tender, buttery cubes, searing them toward the shorter end of the 2–4 minute window, since just-seared is ideal for this lean cut per the recipe’s own note.

Lettuce Wrap Version

Serve the hot beef with whole lettuce leaves, tomato, cucumber, cilantro and lime for wrapping at the table, keeping the rice on the side for the same hot-and-cool contrast in a lighter format.


Storage & Make-Ahead

The beef can be cubed and patted dry up to 1 day ahead and kept covered in the fridge, then marinated for 30 minutes just before cooking, chilling it if it must wait a little longer but never leaving it for hours.

Mix the marinade ingredients up to 2 days ahead in a sealed jar in the fridge, and cut the onion and slice the scallions a few hours ahead, keeping each covered and chilled separately until the wok is hot.

Wash and thoroughly dry the lettuce up to 1 day ahead, storing it wrapped in a paper towel in a sealed container, but slice the tomatoes and cucumber only shortly before serving so they stay genuinely crisp and cool.

The jasmine rice can be cooked up to 2 days ahead, cooled quickly and refrigerated in an airtight container, then reheated covered with 1–2 tbsp water in the microwave until steaming hot all the way through.

Shaking beef is genuinely best eaten straight from the wok, but leftover beef keeps in an airtight container in the fridge for up to 2 days and reheats best tossed for 30–60 seconds in a very hot pan.


Frequently Asked Questions

Why does the beef need to be patted dry before marinating?

Surface moisture has to boil off before any browning can begin, and that wasted time overcooks the inside of each cube. Dry beef also holds the thin marinade evenly, so the sugar and oyster sauce caramelise quickly against the hot wok.

Why is the dish called shaking beef?

The name comes from tossing or shaking the wok repeatedly while the cubes sear, which turns every side against the hot metal. That constant movement browns the beef evenly in 2–4 minutes without letting any face scorch or the centres overcook.

Why is the butter added only at the end?

Butter’s milk solids burn quickly at the very high heat used for searing, so it would turn bitter during the first batch. Melted in at slightly lower heat, it combines with the pan juices into the thin, glossy glaze that coats each cube.

Why are the lettuce, tomato and cucumber served cold and raw?

They provide the cool, crisp contrast that balances the hot, rich, peppery beef. Cooking or warming them would dull that freshness, while a squeeze of lime over both brightens the savoury glaze and genuinely ties the bowl together.

Are there other classic beef stir-fry, steak, or rice dishes worth trying?

Cambodian Beef Lok Lak is the closest regional relative worth exploring, and Peruvian Lomo Saltado offers another classic stir-fried beef direction. Vietnamese Rare Beef Salad — Bò Tái Chanh and Garlic Butter Steak Bites are also worth trying for other beef-forward dishes, while Fluffy Butter Rice makes another simple rice side worth making.



Nutrition Facts 

( Per Serving — 1 bowl or plate )

Calories

~740 kcal

Protein

47 g

Fat

38 g

Carbs

52 g

Calories

~740 kcal

Protein

47 g

Fat

38 g

Carbs

52 g

Related Recipes

Related Recipes


You might also like

You might also like


Vietnamese Shaking Beef / Bò Lúc Lắc showing glossy caramelised beef cubes with onion and scallions beside jasmine rice, lettuce, tomato, cucumber and lime, on marble surface

Vietnamese Shaking Beef / Bò Lúc Lắc

A classic Vietnamese beef dish of large, deeply seared steak cubes tossed in a glossy oyster, fish and soy glaze with butter, onion and scallions, served with jasmine rice, crisp lettuce, tomato, cucumber, cilantro and lime, the key being a hard, fast sear against cool, fresh sides. Searing well-dried, generously sized cubes in a very hot wok in 2 uncrowded batches, rather than tipping all the beef in at once, is the technique this whole dish depends on for its browned, caramelised edges and juicy centres — an overloaded pan releases moisture and simmers the beef grey, turning shaking beef into braised beef, the same sear-hot-in-batches principle used elsewhere in this collection whenever tender steak meets a short, fierce cook. A short 30-minute marinade, rather than a long soak, is what lets the garlic, oyster sauce and sugar season the beef without leaving it too wet to brown. Melting butter into the pan and returning the beef for only 30–60 seconds is what turns the juices into a thin, glossy glaze instead of a pooling sauce. The payoff is a bowl with real, contrasting character — hot, peppery, caramelised beef and sweet onion against fluffy rice, cool crisp vegetables and bright lime.
Prep Time 25 minutes
Cook Time 15 minutes
Marinating Time 30 minutes
Total Time 1 hour 10 minutes
Servings: 4
Course: Main Course
Cuisine: Vietnamese
Calories: 740

Ingredients
  

For the Beef
  • 800 g beef steak such as sirloin, striploin, ribeye or tenderloin, cut into large bite-size cubes, about 2.5–3cm
  • 4 garlic cloves finely minced
  • 1½ tbsp oyster sauce
  • 1 tbsp fish sauce
  • 1 tbsp light soy sauce
  • 1½ tsp sugar
  • ½ tsp black pepper
  • 1 tbsp neutral oil
For the Stir-Fry
  • 1½ tbsp neutral oil divided
  • 2 tbsp unsalted butter
  • 3 scallions sliced
  • 1 small onion cut into thin wedges or petals
  • A tiny splash of extra fish sauce and a pinch of extra black pepper to adjust, only if needed
For the Jasmine Rice
  • 200 g jasmine rice
  • 300 ml water
For the Fresh Vegetables and Garnish
  • 1 small head leaf lettuce or about 120–150g lettuce leaves
  • 2 medium tomatoes sliced
  • ½–1 English cucumber sliced
  • 10–15 g cilantro leaves
  • 2 limes cut into wedges

Method
 

Marinate the Beef
  1. Pat the 800g cubed beef very dry with paper towels, trimming any uneven pieces so every cube sits close to 2.5–3cm and cooks at the same rate. In a bowl, combine the 4 minced garlic cloves, 1½ tbsp oyster sauce, 1 tbsp fish sauce, 1 tbsp light soy sauce, 1½ tsp sugar, ½ tsp black pepper and 1 tbsp neutral oil, stirring until the sugar has dissolved. Add the beef and toss until every cube is evenly coated and glossy, with no pool of liquid left in the bottom of the bowl. Cover and marinate for 30 minutes at room temperature if your kitchen is cool, or in the fridge if it needs to wait longer, but never for hours. That short, light marinade is what seasons the surface without making the beef so wet that it steams in the pan.
Cook the Jasmine Rice
  1. As soon as the beef is marinating, rinse the 200g jasmine rice in cold water 2–3 times, swirling it with your fingers, until the water runs mostly clear, then drain well. Combine the rice and 300ml water in a small saucepan and bring to a boil over medium-high heat. Stir once, cover tightly, reduce to the lowest heat and cook for 12 minutes, then turn off the heat and leave it to stand, still covered, for 10 minutes without lifting the lid. Fluff gently with a fork and keep it covered and warm. The grains should be soft, separate and fully ready before the beef goes anywhere near the wok. That timing matters because shaking beef is best eaten the moment it leaves the pan, while it is still glossy and juicy.
Prep the Vegetables and Bowls
  1. While the rice cooks, wash the lettuce and dry it thoroughly, tearing any large leaves into manageable pieces. Slice the 2 tomatoes and the ½–1 English cucumber, pick the 10–15g cilantro leaves and cut the 2 limes into wedges. Cut the small onion into thin wedges or separate it into petals, and slice the 3 scallions, setting about a third of the green tops aside for the garnish. Once the rice is fluffed, divide it among 4 bowls or plates and arrange the lettuce, tomato and cucumber beside it, keeping the vegetables cold and crisp. Set the cilantro and lime wedges within reach of the stove. That advance plating is what lets the beef go straight from the wok onto the rice without losing its heat or its gloss.
Sear the Beef
  1. Heat a wok or large heavy skillet over high heat for 2–3 minutes, until very hot and just beginning to smoke. Add ½ tbsp of the neutral oil and swirl it around the pan. Add half the beef in a single layer and let it sear undisturbed for about 1 minute, until a deep brown crust forms underneath. Then toss or “shake” the pan frequently, cooking for 2–4 minutes in total depending on cube size and preferred doneness, until the outside is deeply browned, the edges look glossy and caramelised and the centres still feel tender when pressed. Transfer to a plate, let the pan reheat fully, then repeat with another ½ tbsp oil and the remaining beef. If the cubes release liquid and start to simmer, the pan is crowded or not hot enough. That fast, uncrowded sear is what browns the beef deeply without overcooking its centre.
Finish With Butter and Scallions
  1. Reduce the heat slightly to medium-high and add the remaining ½ tbsp neutral oil, which the pan usually needs after 2 batches. Add the onion and stir-fry for 30–60 seconds, just until it softens slightly at the edges but still holds its shape. Add the 2 tbsp unsalted butter and let it melt and foam. Return the beef with any juices from the plate, add the remaining two-thirds of the scallions and toss everything together for 30–60 seconds, just until the beef is coated, glossy and heated through. Taste and adjust with a tiny splash of extra fish sauce or a pinch of extra black pepper only if needed. The sauce should lightly glaze the beef rather than pool in the pan; if it looks watery, toss for a few seconds longer over high heat. That brief final toss is what melts the butter into the juices to form a glaze without cooking the beef any further.
Assemble and Serve
  1. Spoon the hot shaking beef, onion and every bit of glaze over or beside the rice in each prepared bowl, giving every serving about a quarter of the beef. Scatter over the reserved scallion greens and the cilantro leaves, then tuck the lime wedges alongside. Serve immediately, while the beef is still steaming and the vegetables are still cold and crisp. Squeeze the lime over the beef and vegetables at the table, or wrap bites of beef and tomato in the lettuce leaves. The finished bowl should show deeply browned cubes with a thin, shiny coating, never a pool of thick gravy. That contrast between the hot, rich beef and the cool, crisp vegetables is what makes the dish feel genuinely balanced rather than heavy.

Notes

Searing the beef in 2 uncrowded batches deserves genuine recognition as the technique most directly responsible for whether this dish tastes seared or stewed. The recipe’s own warning that “Crowding releases moisture and turns this into braised beef instead of shaking beef” explains why — 800g of cold, marinated cubes drops the pan temperature so sharply that the juices escape and boil, leaving grey, chewy beef with no caramelised edges.
Choosing a tender, quick-cooking cut deserves the same attention this technique receives throughout this collection’s other fast steak dishes, because a few minutes of searing is far too short to soften tough muscle. The recipe’s own note that “Chuck or stewing beef is not suitable here” reflects exactly this — sirloin, striploin, ribeye and tenderloin turn juicy in 2–4 minutes, while braising cuts stay genuinely rubbery however hot the wok becomes.
Keeping the marinade short and light deserves genuine respect as the detail most directly responsible for the beef browning properly at all. The recipe’s own instruction to “not marinate for hours in a very wet marinade” matters because a long soak draws liquid to the surface and softens it, so the cubes steam in their own juices instead of developing the deep, sticky crust the whole dish is built around.
The finished glaze deserves attention as a genuine, checkable readiness cue rather than a loose approximation. The recipe’s own target that “The final sauce should lightly glaze the beef, not pool heavily in the pan” gives a clear test — shiny cubes over an almost dry pan mean the butter and juices have reduced properly, while visible liquid means a few more seconds over high heat are needed.