Main Courses
This beef and spinach stir fry recipe delivers restaurant-quality results with a velvety garlic butter sauce that perfectly complements wilted greens and tender beef. The secret lies in high-heat stir-frying—achieving that signature wok hei—while balancing rich, savory flavors with fresh spinach that wilts just enough to maintain texture.
I've perfected this technique over years of testing, ensuring every bite delivers the perfect harmony of crisp-tender beef, aromatic garlic, and buttery sauce.
The foundation starts with properly seared beef strips—quickly cooked at high heat to lock in juices—before deglazing the pan with a splash of soy sauce and a splash of dry sherry.
This creates a flavorful base that builds into the velvety garlic butter sauce, where melted butter and minced garlic infuse the pan with aroma. Fresh spinach is added at the very end to wilt dramatically, absorbing the sauce while staying vibrant. The result?
A dish that's foolproof yet undeniably elegant, perfect for weeknight dinners or weekend entertaining.
What makes this recipe stand out is its versatility—adapt it to your preferred cooking method, whether you're using a wok, skillet, or even an air fryer. The sauce clings beautifully to the beef and spinach, creating a luscious coating that's rich without being heavy.
Serve it over steamed jasmine rice or noodles to soak up every last drop of that garlic butter goodness, or enjoy it as-is for a satisfying, protein-packed meal.
Ready in just 20 minutes, this stir fry requires minimal prep and no fancy equipment—just a few key ingredients and the right technique. Whether you're feeding a family or treating yourself to a quick weeknight meal, this recipe delivers restaurant-quality results that taste even better than takeout.
Let's get cooking!
Ingredients for beef and spinach stir fry
Restaurant-quality stir fry starts with these 12 essential ingredients—simple yet precise for perfect wok hei flavor.
| Ingredient | Amount | Notes |
|---|---|---|
| Flank Steak 🥩 | 1 lb | Thinly sliced against grain |
| Fresh Spinach 🌿 | 8 oz | Baby spinach preferred |
| Unsalted Butter 🧈 | 4 tbsp | Cold, cut into small cubes |
| Garlic Cloves 🧄 | 6 cloves | Minced finely |
| Low-Sodium Soy Sauce 🥢 | 2 tbsp | Or tamari for gluten-free |
| Dry Sherry 🍷 | 1 tbsp | Or substitute with dry white wine |
| Sesame Oil 🫒 | 1 tsp | For aroma, not cooking |
| Jasmine Rice 🍚 | 1 ½ cups | Uncooked, long-grain preferred |
| Vegetable Oil 🫒 | 2 tbsp | High smoke point |
| Sesame Seeds 🌾 | 1 tsp | Toasted for garnish |
| Diamond Crystal Kosher Salt 🧂 | 1 tsp | For seasoning |
| Ground Black Pepper 🌶️ | ½ tsp | Freshly ground |
The flank steak is non-negotiable—it stays tender when sliced thin against the grain. Look for well-marbled cuts at your local butcher or grocery store's meat department. I prefer to slice it myself for even cooking, but pre-sliced works in a pinch. Fresh spinach is key here—baby spinach holds up better than mature leaves when wilted. For the butter, grab unsalted (you control the salt) and chill it until ready to use. The garlic should be freshly minced—pre-minced jars lose flavor fast. If you're short on time, Trader Joe's sells pre-minced garlic in tubes that work perfectly.
No sherry? Dry white wine or extra soy sauce gets you close. The sesame oil adds aroma but shouldn't be cooked—just swirl it in at the end. For the rice, jasmine rice is ideal, but basmati works too. If you're using pre-cooked rice, it'll save time but fresh is better. The vegetable oil is for high-heat searing—avoid olive oil here as it burns easily. For extra flavor, toast the sesame seeds in a dry pan for 30 seconds before adding to the dish. The kosher salt is crucial—Diamond Crystal is my go-to because it dissolves completely, unlike table salt.
Prep the beef first—slice it thin and marinate with soy sauce for 10 minutes. The spinach stays fresh for 5 days in the fridge, but wilt it just before serving. Butter cubes keep in the fridge for 3 months, but bring them to room temp before cooking. This dish reheats beautifully—just add a splash of water or soy sauce to the pan. For leftovers, store in an airtight container for up to 3 days. Freeze portions for 2 months if needed, but the texture changes slightly after thawing.
Why You'll Love This Recipe
- One-Pan Magic: I swear by this for nights when I’m too tired to scrub pots—just sear the steak, toss in the spinach, and let the butter and soy sauce work their magic. The garlic cloves sizzle in the same pan, so cleanup is basically nonexistent.
- Buttery Garlic Crunch: That moment when the spinach wilts into the pan with the steak, coated in melted butter and garlic? It’s the kind of flavor that makes you pause mid-bite. The low-sodium soy sauce ties it all together without overpowering—just enough umami to keep you reaching for seconds.
- Lunchbox Hero: Between us, this is my go-to for meal prep. Slice the leftover steak thin, toss it with the spinach mixture, and pack it in containers—it stays fresh for days. Honestly, my kids would eat it cold if I let them, and it’s still delicious.
- Budget Steakhouse Feel: Flank steak is affordable, and a single cut feeds four easily. The butter and soy sauce make it taste like a splurge, even though I’m really just stretching a protein into something restaurant-worthy. It’s my secret for feeling fancy without the price tag.
Step-by-step instructions for beef and spinach stir fry
Here's how to create a restaurant-quality stir fry with tender beef and perfectly wilted spinach.
Prepare the Flank Steak
Slice the 1 lb flank steak thinly against the grain into ¼-inch thick strips. This cut ensures maximum tenderness in your stir fry. Place the sliced steak in a bowl and season generously with 1 teaspoon Diamond Crystal kosher salt and ½ teaspoon ground black pepper. Let it sit at room temperature for 15-20 minutes while you prepare the rest of the ingredients.
This resting period allows the meat to cook more evenly, preventing any cold spots in the center. I like to press the salt and pepper mixture into the meat gently—this ensures even seasoning and helps break down the muscle fibers slightly for better texture.
Cook the Jasmine Rice
Rinse the 1½ cups jasmine rice under cold water until the water runs clear. This removes excess starch that can make the rice gummy. Transfer the rice to a pot with 2 cups water and bring to a boil over medium-high heat. Once boiling, reduce heat to low, cover tightly, and simmer for 15 minutes. Remove from heat and let it steam, covered, for another 10 minutes. Fluff with a fork before serving.
Don't skip the rinsing step—the starch buildup can turn your perfect rice into a gluey mess. The covered steaming at the end is crucial for achieving that light, fluffy texture. If your rice is still slightly undercooked, return it to the heat for an additional 2-3 minutes covered.
Sear the Beef in Vegetable Oil
Heat 2 tablespoons vegetable oil in a large skillet or wok over high heat until shimmering. Add the seasoned flank steak strips in a single layer, being careful not to overcrowd the pan. Cook undisturbed for 1-2 minutes until the beef develops a deep golden brown crust on one side. Flip and cook for another 1-2 minutes until fully cooked through.
This high-heat searing is what creates that beautiful caramelized crust while keeping the beef tender. If your pan isn't hot enough, the oil will absorb into the meat instead of creating that gorgeous sear. Remove the beef to a plate and set aside—it will continue cooking slightly from residual heat.
Create the Garlic Butter Sauce
In the same skillet, reduce heat to medium and add 4 tablespoons cold unsalted butter cut into small cubes. Let it melt completely, then add the 6 cloves minced garlic. Cook for 30-45 seconds until fragrant but not browned—garlic burns quickly, and you want that sweet aroma to shine through.
Stir in 2 tablespoons low-sodium soy sauce and 1 tablespoon dry sherry, scraping up any browned bits from the bottom of the pan. These bits are packed with flavor—don't miss them! Let the sauce simmer for 1-2 minutes until slightly reduced and thickened.
Wilt the Spinach and Finish
Return the cooked beef to the skillet and stir to coat in the sauce. Add the 8 ounces fresh spinach and toss gently until just wilted—about 1-2 minutes. The spinach should be bright green and tender-crisp, not mushy. Remove from heat and stir in 1 teaspoon sesame oil for that signature aroma.
Taste and adjust seasoning if needed—you might want to add a pinch more salt or a splash of soy sauce. Serve immediately over the cooked jasmine rice, garnished with 1 teaspoon toasted sesame seeds. The contrast of the warm, tender beef with the bright spinach and fragrant rice makes this dish truly special.
Pro Tips For Making Beef And Spinach Stir Fry
- Slice Against the Grain: I learned this the hard way—thin, even slices of flank steak cook faster and stay tender. Cut at a 45-degree angle against the grain, about ¼-inch thick, or the meat will turn chewy. (Yes, even if you're impatient like me.)
- Wilt Spinach Last: Add spinach to the pan when the beef is nearly done, not at the start. It wilts in seconds, so toss it in with the garlic and soy sauce for just 30 seconds—any longer and it’ll turn to mush. (Your future self will thank you.)
- Use Butter in Stages: Don’t dump all the butter in at once—melt half first to sear the beef, then add the rest with the garlic. The butter adds richness, but too much upfront can steam the meat instead of browning it. (I know, I know, but trust the process.)
- Rest the Beef Before Stir-Frying: Give the sliced flank steak a solid 10 minutes at room temperature before cooking. Cold meat releases juices unevenly, leading to uneven cooking. (This isn’t the prettiest method, but it’s the tastiest.)
Health benefits of these flavors
Lean Protein Power
This stir fry delivers high-quality protein from the flank steak, with a 6-ounce serving providing about 40 grams of complete protein. Unlike fatty cuts, flank steak offers lean protein while still delivering rich beef flavor. The garlic butter sauce adds richness without compromising the dish's overall nutritional balance. 💪
Spinach's Nutrient Boost
Fresh spinach brings iron, vitamin K, and folate to the table, with 8 ounces providing nearly 50% of your daily vitamin A needs. The quick wilting process preserves most of these nutrients, unlike long cooking methods that can degrade them.
I always use baby spinach for its delicate texture and higher nutrient density.
Heart-Healthy Fats
The unsalted butter in the sauce provides saturated fat in moderation, while the sesame oil contributes healthy monounsaturated fats. Together, they create a balanced fat profile that supports heart health. For a lighter option, I sometimes reduce the butter to 2 tablespoons without sacrificing flavor.
Low-Carb Flexibility
This recipe naturally fits low-carb diets when served without rice—simply enjoy the beef and spinach over a bed of cauliflower rice or as a standalone dish. The flank steak provides 18 grams of protein per 3-ounce serving, making it an excellent choice for keto or carnivore diets.
The garlic butter sauce can be thickened with xanthan gum for a keto-friendly consistency.
Antioxidant-Rich Sauce
Garlic and sesame oil are packed with antioxidants that combat inflammation. The minced garlic contains allicin, a compound with proven immune-boosting properties, while sesame oil provides vitamin E. Together, they create a flavorful sauce that's also beneficial for your health. 🌱
Meal Prep Advantage
This stir fry reheats beautifully while maintaining its nutritional benefits. Store leftovers in an airtight container for up to 3 days, and the protein and fiber content keeps you full longer than processed takeout options.
For extra protein, I sometimes add edamame or tofu to the stir fry without altering the core recipe's integrity.
Nutrition facts
Frequently asked questions
Can I substitute flank steak with another cut of beef?
For best results, use sirloin, ribeye, or skirt steak—all lean and tender when sliced thin against the grain. Avoid fatty cuts like brisket, as they won't sear properly. If using pre-sliced beef, pat it very dry with paper towels before cooking to ensure a good sear.
What if I don't have dry sherry? What's the best substitute?
Use 1 tablespoon dry white wine or 1 teaspoon rice vinegar for brightness. For a richer flavor, add ½ teaspoon honey or 1 teaspoon mirin to balance the acidity. The key is to deglaze the pan with something acidic to lift the browned bits from the bottom.
How do I prevent the spinach from turning mushy?
Add spinach only at the very end—it should wilt in 30-60 seconds over high heat. Overcrowding the pan or cooking too long will make it soggy. For extra texture, blanch the spinach first (30 seconds in boiling water, then ice bath) before stir-frying. This keeps it vibrant even when wilted.
Can I make this stir fry in a regular skillet instead of a wok?
Yes! Use a 10-12 inch heavy-bottomed skillet (like cast iron) for even heat distribution. Work in two batches if needed—don't overcrowd. The high heat is key, so crank your stove to medium-high or high and let the pan get screaming hot before adding oil. A skillet won't give you wok hei, but it'll still taste delicious!
Why did my beef turn out chewy instead of tender?
This usually happens if the beef wasn't sliced thinly against the grain or cooked at too low heat. For next time: slice at a 45-degree angle against the grain, and use high heat for quick cooking. Also, let the meat rest 15 minutes after seasoning before cooking. If it's still tough, try marinating in 1 tablespoon soy sauce + 1 teaspoon cornstarch for 20 minutes before cooking.
