Thai Basil Beef
This post may contain affiliate links. Please read my disclosure policy.
This Thai Basil Beef has velveted beef that stays silky and tender, crisp peppers and onions, a deeply savory sauce, and a generous handful of fresh Thai basil folded in at the very end. High heat, 30 minutes, and better than most Thai restaurants you’d order this from.

Asian dishes are some of my most made and most loved recipes on JoCooks and this Thai Basil Beef is a perfect example of why. The technique is straightforward, the ingredients are accessible, and the result is something that tastes genuinely restaurant quality in about 30 minutes.
The key is treating each step with the respect it deserves. Velvet the beef so it stays silky. Get the pan properly hot before anything goes in. Have everything prepped and within arm’s reach because once this dish starts it moves fast. And don’t even think about skipping the Thai basil. It’s not decorative. It’s the whole point.

Why This Recipe Works
- Velveting the beef changes everything. A quick marinade of cornstarch, soy sauce, and a little oil forms a light coating around each piece of beef that protects it from the high heat and locks in the juices. The result is silky tender beef instead of tough chewy beef and it’s the same technique Chinese and Thai restaurants use. You’ve always wondered why restaurant beef tastes different from homemade. This is why.
- The sauce is built for balance. Soy sauce for saltiness, oyster sauce for depth, fish sauce for umami, brown sugar for sweetness, rice vinegar for brightness. Nothing dominates, everything contributes, and together they make something that coats the beef and vegetables in a glossy deeply savory sauce.
- High heat throughout. Stir fry at medium heat is just warm food. High heat gives you char, caramelization, and that wok breath flavor that makes the whole dish come alive.
- Thai basil goes in at the very end. Off the heat, folded in just until wilted. Cook it too long and you lose the color, the aroma, and the whole reason you hunted down Thai basil instead of using regular.

About Thai Basil
Thai basil isn’t the same as regular Italian basil and in this recipe that difference matters enormously.
Regular basil is sweet and mild. Thai basil has a stronger, slightly spicy, almost anise-like flavor with sturdier leaves that hold up better to heat. It’s what gives this dish its signature aroma and that distinct peppery herbal finish that makes it taste authentically Thai rather than just a beef stir fry with basil thrown in.
Most Asian grocery stores carry it and many regular grocery stores now stock it in the fresh herb section. If you genuinely can’t find it, regular basil will work in a pinch but the flavor will be noticeably different and considerably milder. I won’t pretend otherwise. Find the Thai basil if you can.
Ingredients in Thai Basil Beef

- Flank steak or sirloin (1½ pounds, thinly sliced against the grain): Slice against the grain for the most tender result. Freeze the beef for 20 to 30 minutes before slicing for cleaner thinner cuts.
- Cornstarch: Goes into the marinade and is what makes velveting work. It forms a light protective coating around the beef that keeps it silky at high heat. Don’t skip it.
- Soy sauce: Used in both the marinade and the sauce. Low sodium in the sauce so you control the salt level.
- Vegetable oil: High smoke point, neutral flavor. Use this, not olive oil, which will smoke at the heat you need for stir fry.
- Oyster sauce: Adds a savory depth and slight sweetness to the sauce. Find it in the Asian aisle of any grocery store.
- Fish sauce: I know what you’re thinking. It smells alarming straight from the bottle. Use it anyway. In the finished dish it doesn’t taste fishy at all, it just adds a deep savory umami backbone that you can’t replicate with anything else. If you’re absolutely opposed, a little extra soy sauce is the best substitute but the depth will be noticeably different.
- Brown sugar: Balances the saltiness of the soy and fish sauce.
- Rice vinegar: A small amount of acidity that brightens the whole sauce.
- Beef broth: Adds body to the sauce and helps it coat everything evenly.
- Red and yellow bell peppers: Thinly sliced so they cook quickly at high heat and stay crisp tender.
- Onion: Sliced, goes in with the peppers. Garlic (4 cloves, minced): Goes in after the peppers so it doesn’t burn. 30 seconds is all it needs.
- Fresh ginger (1 tablespoon, grated): Adds warmth and that distinct Thai flavor. Fresh only, ground ginger isn’t the same here.
- Thai chilies (2 to 3, sliced): These are small and seriously hot. Start with 2 if you’re heat sensitive. Red pepper flakes work as a substitute if you can’t find Thai chilies, use about 1 teaspoon and adjust to taste.
- Fresh Thai basil (1½ cups): The whole point of the dish. See the section above. Find it, use it, don’t substitute unless you have absolutely no other option.
How to Make Thai Basil Beef

Velvet the beef first. Toss the sliced beef with the cornstarch, soy sauce, and vegetable oil until every piece is coated and let it sit for 20 minutes at room temperature. While it marinates, whisk the sauce ingredients together in a small bowl and set it next to the stove. Prep all your vegetables. Once cooking starts there’s no time to stop and chop anything.

Heat the vegetable oil in a large skillet or wok over high heat until it shimmers. Properly hot, not warm, not medium high, hot. Add the beef in a single layer and let it sear undisturbed for 1 minute before stirring. Cook for 2 to 3 minutes total until browned but not fully cooked through then remove it from the pan and set aside.

Add the peppers and onion to the same pan and stir fry for 2 minutes until crisp tender and starting to char at the edges. Add the garlic, ginger, and Thai chilies and stir for 30 seconds until fragrant. Watch the garlic closely, 30 seconds is enough and burnt garlic will ruin the dish.

Return the beef to the pan and pour in the sauce. Toss everything together and cook for 1 to 2 minutes until the sauce thickens slightly and coats everything in something glossy and deeply savory.

Turn off the heat and fold in the Thai basil leaves, stirring just until they wilt. They go in off the heat so they keep their color and that distinct peppery anise flavor. Cook them too long and they turn dark and lose everything that makes them special.
Serve immediately over jasmine rice with peanuts and lime wedges alongside.

Tips and Tricks
- Slice the beef against the grain and freeze it briefly first. 20 to 30 minutes in the freezer firms the beef up and makes thin slicing much easier and cleaner.
- Velvet the beef. Already said this but it deserves repeating. The 20 minute marinade with cornstarch is what separates restaurant quality beef from homemade beef. Don’t skip it.
- Prep everything before you start cooking. This dish moves fast once the wok is hot. Sauce whisked, vegetables sliced, beef ready. Everything within arm’s reach before you turn on the heat.
- High heat throughout. This is a stir fry. Medium heat isn’t the move.
- Don’t crowd the pan. If your skillet isn’t large enough cook the beef in batches, it took 2 batches for me. Crowding drops the temperature and you get steamed beef instead of seared beef and that’s a different and sadder dish.
- Thai basil off the heat. Fold it in after you turn off the burner. 30 seconds of wilting is all it needs.
- Serve immediately. Stir fry waits for no one and the Thai basil loses its color and aroma as it sits.
What to Serve With This
Jasmine rice is the obvious and correct answer. The sauce soaks into it beautifully and the fragrant rice is the perfect backdrop for everything happening in the stir fry. Chopped peanuts over the top add crunch and a lime wedge squeezed over at the end brightens everything. If you want to skip the rice, this is also excellent over noodles.

Try These Recipes Next
- Sheet Pan Teriyaki Chicken
- Sticky Beef Fried Rice
- Dumpling Lasagna
- Chicken Yakitori
- Chili Garlic Beef Noodles
- Thai Chicken Wings
Before You Begin! If you make this, please leave a review and rating letting us know how you liked this recipe! This helps our business thrive & continue providing free recipes.

Thai Basil Beef
Ingredients
For the beef marinade
- 1½ pounds flank steak or sirloin (thinly sliced against the grain)
- 1 tablespoon cornstarch
- 1 tablespoon soy sauce
- 1 teaspoon vegetable oil
For the sauce
- 3 tablespoons soy sauce (low sodium)
- 2 tablespoons oyster sauce
- 1 tablespoon fish sauce
- 1 tablespoon brown sugar
- 1 teaspoon rice vinegar
- ¼ cup beef broth (or water)
For the beef and vegetables
- 2 tablespoons vegetable oil
- 1 medium red bell pepper (thinly sliced)
- 1 medium yellow bell pepper (thinly sliced)
- 1 small onion (sliced)
- 4 cloves garlic (minced)
- 1 tablespoon fresh ginger (grated)
- 2 to 3 Thai chilies (sliced, or 1 teaspoon red pepper flakes)
- 1½ cups fresh Thai basil leaves
Before You Begin! If you make this, please leave a review and rating letting us know how you liked this recipe! This helps our business thrive & continue providing free recipes.
Instructions
- Velvet the beef first. In a bowl, toss the 1½ pounds sliced beef with the 1 tablespoon cornstarch, 1 tablespoon soy sauce, and 1 teaspoon vegetable oil until every piece is coated. Let it sit for 20 minutes at room temperature. This is the step that gives you that silky, tender beef you get at restaurants, the cornstarch forms a light coating that protects the meat from the high heat and locks in the juices.

- While the beef marinates, whisk together the 3 tablespoons soy sauce, 2 tablespoons oyster sauce, 1 tablespoon fish sauce, 1 tablespoon brown sugar, 1 teaspoon rice vinegar, and ¼ cup beef broth in a small bowl. Set it within arm’s reach of the stove, because this dish moves fast once it starts.

- Heat the 2 tablespoons vegetable oil in a large skillet or wok over high heat until it shimmers. High heat is the whole secret to this dish, so do not rush it, let the pan get properly hot. Add the velveted beef in a single layer and let it sear undisturbed for 1 minute before stirring. Cook for 2 to 3 minutes total, until browned but not fully cooked through, then push it to one side or scoop it out onto a plate.

- Add the sliced red and yellow peppers and the sliced onion to the same pan. Stir fry for 2 minutes, until they are crisp tender and starting to char at the edges.

- Add the 4 cloves minced garlic, 1 tablespoon grated ginger, and the Thai chilies. Stir for 30 seconds, just until fragrant, taking care not to burn the garlic.

- Return the beef to the pan and pour in the sauce. Toss everything together and cook for 1 to 2 minutes, until the sauce thickens slightly and coats the beef and vegetables.

- Turn off the heat and fold in the 1½ cups Thai basil leaves, stirring just until they wilt. They go in at the very end so they keep their color and that distinct peppery anise flavor, which dies if you cook it too long.

- Serve over the 3 cups warm jasmine rice, topped with the ⅓ cup chopped peanuts and lime wedges.
Notes
- Velvet the beef: Don’t skip the 20 minute cornstarch marinade. It’s what gives you silky tender beef instead of tough chewy beef and it’s the same technique restaurants use.
- Slice against the grain: Shortens the muscle fibers and gives you more tender beef. Freeze for 20 to 30 minutes first for cleaner thinner slices.
- High heat throughout: Stir fry lives and dies by heat. Medium heat isn’t the move.
- Prep everything first: Once the wok is hot this dish moves fast. Sauce whisked, vegetables sliced, beef ready, everything within arm’s reach before you start.
- Cook beef in batches if needed: Crowding the pan drops the temperature and you end up steaming instead of searing.
- Thai basil goes in off the heat: Fold it in after you turn off the burner and stir just until wilted. Cook it too long and you lose the color and the flavor.
- Fish sauce: It smells alarming in the bottle but doesn’t make the finished dish taste fishy. It adds deep savory umami that you can’t replicate with anything else. Extra soy sauce is the best substitute if needed.
- Thai chilies: Start with 2 if you’re heat sensitive. Red pepper flakes work as a substitute, start with 1 teaspoon and adjust.
- Thai basil vs regular basil: Thai basil has a spicy peppery anise flavor that regular basil can’t replicate. Find it at Asian grocery stores or well stocked supermarkets. Use regular only as an absolute last resort.
- Serve immediately: Stir fry doesn’t wait. The Thai basil loses its color and aroma as it sits.
- Leftovers: Store in an airtight container in the fridge for up to 3 days. Reheat in a hot skillet rather than the microwave to preserve the texture.
Nutrition Information
Notice: Nutrition is auto-calculated for your convenience. Where relevant, we recommend using your own nutrition calculations.
Frequently Asked Questions
Can I use regular basil instead of Thai basil?
I’ll be honest with you, the dish won’t be the same. Regular basil is sweet and mild where Thai basil is spicy, peppery, and slightly anise-like. That flavor is what makes this dish taste authentically Thai. Use regular basil only if you truly have no other option and manage your expectations accordingly.
Can I skip the fish sauce?
I wouldn’t recommend it. Fish sauce adds a deep savory umami backbone that you genuinely can’t replicate with anything else. It doesn’t make the finished dish taste fishy at all, it just makes everything taste deeper and more complex. If you’re absolutely opposed, extra soy sauce is the closest substitute but the depth will be noticeably different.
What cut of beef works best?
Flank steak and sirloin are both excellent choices. Flank steak has slightly more flavor and sirloin is a little more tender. Both work beautifully when velveted and sliced thin against the grain.
Can I use chicken instead of beef?
Yes. Thinly sliced boneless skinless chicken thighs work beautifully with the same velveting method. Adjust the cook time slightly since chicken thighs cook a little faster than beef at high heat.
My sauce didn’t thicken. What happened?
Make sure you’re cooking on high heat and that the pan isn’t overcrowded. Low heat or a crowded pan means the sauce steams instead of reducing and you end up with a thin watery sauce instead of a glossy coating.
Can I make this less spicy?
Yes. Use 1 Thai chili instead of 2 to 3 or substitute with half a teaspoon of red pepper flakes. You can also leave the heat out entirely and add a little sriracha at the table for those who want it.

