This copycat recipe recreates the beloved PF Chang’s Beef and Broccoli at home—tender, velvety beef in a glossy, savory-sweet garlic sauce with crisp-tender broccoli florets. It’s a classic Chinese-American stir-fry that comes together quickly once your ingredients are prepped, making it perfect for a weeknight dinner that tastes like takeout.
Ingredients
- 1 lb (450 g) flank steak, sliced thinly against the grain
- 1 lb (450 g) broccoli florets (about 1 large head)
- 3 cloves garlic, minced
- 1 tablespoon (15 ml) vegetable or canola oil, divided
- 1 tablespoon (15 ml) oyster sauce
- 1 tablespoon (15 ml) soy sauce
- 1 tablespoon (15 ml) Shaoxing wine or dry sherry
- 1 teaspoon (5 ml) toasted sesame oil
- 1/4 cup (60 ml) low-sodium chicken broth
- 1 tablespoon (8 g) cornstarch
- 1/4 cup (60 ml) water
- 2 teaspoons (10 g) brown sugar
- 1/4 teaspoon white pepper (optional)
- For the marinade:
- 1 tablespoon (15 ml) soy sauce
- 1 tablespoon (15 ml) Shaoxing wine or dry sherry
- 1 teaspoon (5 ml) sesame oil
- 1 teaspoon (5 g) cornstarch
- 1/4 teaspoon baking soda (optional, for extra tenderness)
Instructions
- Marinate the beef: In a medium bowl, combine the sliced flank steak with the marinade ingredients (soy sauce, Shaoxing wine, sesame oil, cornstarch, and baking soda if using). Mix well until the beef is evenly coated. Let it sit at room temperature for 15 minutes while you prepare the other ingredients.
- Blanch the broccoli: Bring a pot of water to a boil. Add the broccoli florets and cook for 1–2 minutes until bright green and slightly tender. Drain immediately and rinse with cold water to stop the cooking. Set aside.
- Make the sauce: In a small bowl, whisk together the oyster sauce, soy sauce, Shaoxing wine, sesame oil, chicken broth, cornstarch, water, brown sugar, and white pepper (if using). Set aside.
- Cook the beef: Heat a wok or large skillet over high heat until smoking. Add 1/2 tablespoon of oil and swirl to coat. Add the beef in a single layer (work in batches if needed) and sear without moving for 1–2 minutes until browned. Stir-fry for another 1–2 minutes until just cooked through. Transfer the beef to a plate.
- Stir-fry the aromatics: Reduce heat to medium-high. Add the remaining 1/2 tablespoon of oil to the wok. Add the minced garlic and stir-fry for 15 seconds until fragrant.
- Combine everything: Return the beef to the wok. Add the blanched broccoli and the sauce. Stir-fry for 1–2 minutes until the sauce thickens and coats everything evenly. The beef should be cooked to at least 145°F (63°C) (USDA FSIS safe minimum for whole cuts of beef) and the sauce should be glossy.
- Serve immediately: Transfer to a serving platter and enjoy hot.
Tips
- Slice the beef thinly: For tender strips, freeze the flank steak for 15–20 minutes before slicing. This makes it easier to cut thin, even slices against the grain.
- Don’t overcrowd the pan: If you add too much beef at once, it will steam instead of sear. Cook in batches if necessary to get a good brown crust.
- Adjust the sauce: Taste the sauce before adding it to the wok. If you prefer it sweeter, add a little more brown sugar; if you like it saltier, add a splash of soy sauce.
- Substitutions: No Shaoxing wine? Use dry sherry or a splash of rice vinegar mixed with a little water. Oyster sauce can be replaced with hoisin sauce for a different flavor, or use a vegetarian stir-fry sauce to make it plant-based (use tofu or seitan instead of beef).
Serving Suggestions
Serve this beef and broccoli over steamed jasmine rice or noodles. For a complete meal, pair it with a simple egg drop soup or a side of spring rolls. A sprinkle of sesame seeds and sliced green onions on top adds color and crunch.
Variations
- Spicy: Add 1–2 teaspoons of chili garlic sauce or a pinch of red pepper flakes to the sauce for heat.
- Chicken: Substitute boneless, skinless chicken thighs for the beef. Cook until the chicken reaches 165°F (74°C) (USDA FSIS safe minimum for poultry).
- Vegetarian: Use extra-firm tofu or tempeh instead of beef. Marinate and sear the tofu until golden, then proceed with the recipe.
- Add vegetables: Toss in sliced bell peppers, snap peas, or carrots along with the broccoli for extra color and nutrition.
Storage and Reheating
Refrigerate leftovers in an airtight container for up to 3–4 days. To reheat, place in a skillet over medium heat with a splash of water or broth, stirring until warmed through (to an internal temperature of 165°F / 74°C for leftovers). Alternatively, microwave in 30-second intervals, stirring in between. The broccoli may soften more upon reheating, but the flavor will remain delicious.
Frequently Asked Questions
Can I use a different cut of beef? Yes, sirloin or ribeye work well. Just slice thinly against the grain. Avoid tough cuts like chuck, which require longer cooking.
Why is my beef tough? Tough beef is usually overcooked or sliced with the grain. Make sure your pan is very hot and cook the beef quickly. Slicing against the grain shortens the muscle fibers, making it more tender.
Can I make this ahead of time? You can prep the ingredients (slice beef, blanch broccoli, mix sauce) a day ahead. Store them separately in the fridge. Cook the stir-fry just before serving for the best texture.
What can I use instead of broccoli? Try broccolini, Chinese broccoli (gai lan), or green beans. Adjust blanching time accordingly—thinner vegetables need less time.
Is this gluten-free? Not as written, because soy sauce and oyster sauce contain gluten. Use tamari or coconut aminos and a gluten-free oyster sauce (or hoisin) to make it gluten-free.
Can I skip the baking soda in the marinade? Yes, it’s optional. Baking soda helps tenderize the beef, but you can omit it if you prefer. The beef will still be tender if sliced thinly and cooked quickly.
Related
- The Smoking Cuban: Smoky Pulled Pork Sandwich
- Super Peking Duck Paragon Menu Recipe
- The Smoking Cigar: A Savory Stuffed Bread Roll
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).