Quick Recipe Version (TL;DR)
Quick Ingredients
- 1 1/2 lb (680 g) flank, sirloin, or skirt steak, thinly sliced
- 2 tbsp neutral oil (canola, peanut, or vegetable), divided
- 2 large bell peppers (mixed colors), thinly sliced
- 1 medium red onion, sliced
- 4 cloves garlic, minced (divided)
- 1–2 fresh red chilies, thinly sliced (to taste)
- 1/3 cup creamy peanut butter
- 3 tbsp soy sauce
- 1/3 cup canned coconut milk or water
- 2 tbsp fresh lime juice
- 1–2 tbsp chili-garlic sauce or sriracha
- 1 tbsp brown sugar
- 1 tbsp fish sauce (optional but recommended)
- 1 tbsp minced fresh ginger
- 2 tsp cornstarch
- Cooked jasmine rice, chopped roasted peanuts, cilantro, and lime wedges for serving
Do This
- 1. Thinly slice beef against the grain; pat dry.
- 2. Whisk peanut butter, soy, coconut milk, lime, chili-garlic sauce, brown sugar, fish sauce, ginger, half the garlic, and cornstarch. Marinate beef in half the sauce for 10–15 minutes.
- 3. Prep bell peppers, onion, remaining garlic, and chilies; cook rice if needed.
- 4. Stir-fry marinated beef in 1 tbsp oil over high heat until just cooked and browned; remove to a plate.
- 5. In same pan, add 1 tbsp oil; stir-fry peppers, onion, chilies, and remaining garlic until crisp-tender.
- 6. Return beef to pan, pour in remaining sauce plus a splash of water, and cook 1–2 minutes until glossy and thick.
- 7. Serve over hot rice, topped with chopped peanuts, cilantro, extra chilies, and lime wedges.
Why You’ll Love This Recipe
- All the flavor of beef satay skewers in a quick one-pan stir-fry that is weeknight-friendly.
- Creamy, spicy peanut sauce clings to tender beef and sweet bell peppers for a big flavor payoff.
- Easy to customize the heat level and protein, and it works with whatever vegetables you have.
- Everything cooks in about 15 minutes once you start, so dinner is fast with minimal cleanup.
Grocery List
- Produce: 2 large bell peppers, 1 medium red onion, fresh garlic, fresh ginger, 1–2 fresh red chilies, fresh cilantro, 2 limes
- Dairy: None (use coconut milk from the pantry; recipe is dairy-free)
- Pantry: Beef (flank, sirloin, or skirt steak), creamy peanut butter, soy sauce, canned coconut milk, brown sugar, fish sauce, chili-garlic sauce or sriracha, cornstarch, neutral cooking oil, jasmine rice, roasted peanuts, salt, black pepper
Full Ingredients
For the Spicy Peanut Satay Sauce & Marinade
- 1/3 cup creamy peanut butter (smooth, not natural separated if possible)
- 1/3 cup canned coconut milk or water
- 3 tbsp soy sauce (use low-sodium if preferred)
- 2 tbsp fresh lime juice (about 1 lime)
- 1–2 tbsp chili-garlic sauce or sriracha, to taste
- 1 tbsp packed light brown sugar
- 1 tbsp fish sauce (optional but adds great depth)
- 1 tbsp finely minced fresh ginger
- 3 cloves garlic, finely minced
- 2 tsp cornstarch
- 2–4 tbsp water, as needed to thin the sauce to a pourable consistency
For the Beef & Stir-Fry
- 1 1/2 lb (680 g) flank, sirloin, or skirt steak, thinly sliced against the grain
- 2 tbsp neutral oil (canola, peanut, or vegetable), divided
- 2 large bell peppers (red, yellow, or orange), cored and thinly sliced into strips
- 1 medium red onion, halved and thinly sliced
- 1–2 fresh red chilies (Thai bird, Fresno, or jalapeño), thinly sliced (seeded for milder heat)
- 2 cloves garlic, thinly sliced or minced
- 1/4 tsp kosher salt, plus more to taste
- Freshly ground black pepper, to taste
To Serve
- 4 cups cooked jasmine rice (about 1 1/3 cups uncooked)
- 1/3 cup roasted peanuts, roughly chopped
- Small handful fresh cilantro leaves, roughly chopped
- Lime wedges (1–2 limes, cut into wedges)
- Extra sliced fresh chilies or chili-garlic sauce, for serving (optional)

Step-by-Step Instructions
Step 1: Chill and Slice the Beef
For easy slicing, place the beef in the freezer for 10–15 minutes while you gather ingredients. This firms it up just enough to cut cleanly. Using a sharp knife, slice the beef thinly, about 1/4 inch (0.6 cm) thick, against the grain. Cutting against the grain shortens the muscle fibers and keeps the beef tender in the quick stir-fry. Pat the slices dry with a paper towel; dry surfaces brown better.
Step 2: Make the Spicy Peanut Satay Sauce and Marinade
In a medium bowl, whisk together the peanut butter, coconut milk (or water), soy sauce, lime juice, chili-garlic sauce, brown sugar, fish sauce (if using), minced ginger, and minced garlic until smooth. Sprinkle in the cornstarch and whisk again until no lumps remain. The sauce should be thick but pourable; whisk in 2–4 tbsp water, a little at a time, until it reaches a loose yogurt-like consistency.
Transfer about half of this sauce to a separate bowl. Add the sliced beef to that bowl and toss well to coat every piece. Let the beef marinate at room temperature for 10–15 minutes while you prep the vegetables. Reserve the remaining half of the sauce to finish the stir-fry later.
Step 3: Prep the Vegetables, Aromatics, and Rice
While the beef marinates, slice the bell peppers into thin strips, slice the red onion into thin wedges, and slice the fresh chilies (remove seeds for less heat). Mince or slice the remaining 2 cloves of garlic. If you have not already done so, start cooking your rice according to package directions so it is ready when the stir-fry is done.
Keep all the prepped ingredients close to the stove in separate piles or small bowls. Stir-frying goes quickly, so having everything ready (this is your “mise en place”) makes cooking much easier and more enjoyable.
Step 4: Stir-Fry the Marinated Beef
Heat a large wok or heavy skillet (cast iron or stainless steel works well) over high heat until very hot, about 2 minutes. Add 1 tbsp of the oil and swirl to coat the pan. Working in 2 batches if needed to avoid crowding, add the marinated beef in a single layer. Let it sear undisturbed for 45–60 seconds so it develops some browning, then stir-fry for another 1–2 minutes until just cooked through but still tender.
Transfer the beef and any juices to a plate or bowl. If the pan looks very dry or has a lot of dark residue, you can carefully wipe it out with a folded paper towel before cooking the vegetables.
Step 5: Stir-Fry the Vegetables
Return the empty pan to medium-high heat and add the remaining 1 tbsp oil. Add the sliced onion and bell peppers, along with a pinch of salt. Stir-fry for 3–4 minutes, until the onion begins to soften and the peppers are crisp-tender but still bright in color. Add the sliced fresh chilies and the remaining garlic and cook for 30–60 seconds more, stirring constantly, until very fragrant. Do not let the garlic burn; turn the heat down slightly if needed.
Step 6: Combine Everything with the Sauce
Return the cooked beef (and any accumulated juices) to the pan with the vegetables. Give the reserved peanut sauce a quick stir, then pour it into the pan. Toss everything together to coat the beef and vegetables evenly. If the sauce seems too thick, add 2–3 tbsp water to loosen it; if it seems thin, keep cooking.
Cook for 1–2 minutes, stirring frequently, until the sauce is bubbling, glossy, and clings to the beef and vegetables. Taste and adjust seasoning: add a splash more soy for saltiness, a squeeze of lime for brightness, or extra chili-garlic sauce for more heat. Grind in some black pepper if you like.
Step 7: Plate, Garnish, and Serve
Fluff the hot jasmine rice with a fork and divide among 4 bowls or plates. Spoon the spicy peanut-butter beef satay stir-fry over the rice, making sure each serving has a good mix of beef, peppers, and onions. Sprinkle generously with chopped roasted peanuts and fresh cilantro. Add a few extra slices of fresh chili on top if you love heat, and tuck in lime wedges on the side so everyone can squeeze on more acidity to taste.
Serve immediately while everything is hot and saucy. The combination of creamy, spicy peanut sauce, tender beef, and sweet, crisp bell peppers is best right off the stove.
Pro Tips
- Slice against the grain: Always cut the beef across the grain into thin slices. This is the single biggest factor for tenderness in a quick stir-fry.
- Do not overcrowd the pan: Cook the beef in batches if necessary. Overcrowding will steam the meat instead of searing it, and you will miss out on that flavorful browning.
- Adjust the heat level: Use less chili-garlic sauce and remove chili seeds for a mild version, or add more sauce and extra fresh chilies for a fiery dish.
- Control sauce thickness: If the sauce is too thick, add water a tablespoon at a time until it coats everything nicely. If too thin, simmer for another minute or two to reduce, or whisk in an extra 1/2 teaspoon cornstarch mixed with 1 tablespoon water and cook briefly.
- Pre-cook rice and prep ahead: This recipe moves fast once you start cooking. Having rice ready and all vegetables prepped makes the stir-fry stress-free.
Variations
- Chicken or pork satay stir-fry: Swap the beef for thinly sliced chicken thighs, chicken breast, or pork tenderloin. Cooking times are similar; just make sure poultry is fully cooked through.
- Veggie-forward or tofu version: Use extra-firm tofu (pressed and cubed) instead of beef, and double the bell peppers. Add quick-cooking vegetables like snap peas, broccoli florets, or baby corn for more color and crunch.
- Low-carb option: Serve the stir-fry over cauliflower rice, shredded cabbage, or in lettuce cups instead of jasmine rice to cut down on carbohydrates.
Storage & Make-Ahead
The cooked stir-fry keeps well in an airtight container in the refrigerator for up to 3–4 days. Reheat gently in a skillet over medium-low heat with a splash of water to loosen the sauce, or microwave in short bursts, stirring between each so the sauce does not separate.
You can also make the peanut satay sauce up to 2 days ahead and store it in the fridge; it may thicken when cold, so whisk in a little water before using. If you like, slice the beef and vegetables up to 1 day in advance and keep them refrigerated separately. For best texture, it is not recommended to freeze the finished dish, but you can freeze the raw, sliced beef in its marinade for up to 2 months; thaw overnight in the fridge before cooking.
Nutrition (per serving)
Approximate values per serving (1/4 of the recipe, including about 1 cup cooked jasmine rice): about 650 calories, 38 g protein, 28 g fat, 56 g carbohydrates, 4 g fiber, 13 g sugar, and 1,150 mg sodium. Actual values will vary based on exact ingredients, brands, and any substitutions you use.

Leave a Reply