Tofu Lettuce Wraps (Better Than PF Chang’s)

One of my favorite healthy dinner recipes. It's high in protein, full of flavor, and perfect for when you're craving something easy and fresh.

Craving something fresh and healthy yet satisfying? These Tofu Lettuce Wraps fit the bill! Think: crisp and refreshing lettuce piled high with an utterly addictive, savory filling.

If you’re a vegan or vegetarian who’s ever been to PF Chang’s, you probably know that you can order their popular chicken lettuce wraps made with a stir-fried vegetable mixture instead. We wanted to kick that concept up a notch by adding tofu to boost the protein content for an even more satisfying meal.

This version is so good that I can personally guarantee it would knock PF Chang’s MF socks off.

vegan lettuce wraps with crumbled tofu

Why You’ll Love These Vegan Lettuce Wraps

There are a few reasons why vegan lettuce wraps are one of my all-time favorite meals. They are:

  • Healthy (but they taste like takeout). Made with fresh, simple ingredients, plant-based protein, and packed with fiber, you can eat well knowing you’re putting good stuff into your body.
  • Super refreshing. This dish is great year-round, but I especially crave it once the weather starts to warm up in the spring and summertime. We usually eat the better part of a whole head of butter lettuce when we eat this meal! If you’re not a big fan of traditional salads, this is one way to sneak in plenty of fresh greens without feeling like you’re eating rabbit food.
  • Soooo easy to make. Seriously. They require a little bit of chopping and maybe 15 minutes of time on the stove, and then they’re ready! Just one pan to clean up. You can even cut down on prep time by using garlic and ginger paste from a jar. (No one’s judging.)

Not to mention — this is a great vegan meal prep concept! Whip up a big batch of the filling and divvy it up into smaller portions for an easy, nourishing lunch or dinner throughout the week.

Aside from using the tofu filling for lettuce wraps, you can also serve it in rice bowls or over noodles for a slightly heartier meal.

Ingredients for Tofu Lettuce Wraps

  • Tofu. This is the base for this recipe. It provides the protein and a lot of the textural experience. And as we all know, tofu is amazing at soaking up a delicious sauce. Firm or extra-firm tofu works best in this dish. Softer tofu varieties aren’t recommended!
  • Butter or iceberg lettuce. This comes down to preference! I love iceberg lettuce because it’s super crisp and hydrating. Butter lettuce (such as Bibb lettuce) has a softer texture and the leaves are the perfect size for vegan tofu lettuce wraps. You can even use romaine lettuce leaves to make little “boats” if you like.
  • Onion, scallions, garlic, and fresh ginger. These aromatics are going to pack tons of flavor into our tofu mixture. So good!
  • Water chestnuts. These add a super satisfying crunch to every bite.
  • Vegan oyster sauce (or hoisin). Vegan oyster sauce does a lot of the heavy lifting in this recipe. It boasts a super robust umami flavor with some sweetness to round it out. That said, I know it can be challenging to find if you don’t live near an Asian market, so I will recommend hoisin as an easier-to-find alternative. Hoisin has a different flavor profile (a little bit lighter, sweeter, and tangier), but will taste good in this recipe too.
  • Chili garlic sauce (sambal oelek). Okay, this is optional, but we are spice lovers in this household so I always add a heaping tablespoon (or two) of chili paste.
  • Soy sauce. For a hit of that classic umami flavor. Feel free to sub in a gluten-free alternative such as coconut aminos or tamari.
  • Optional toppings. You can add a variety of different toppings to your tofu lettuce wraps, but my go-to additions are shredded carrot, chopped toasted peanuts, sliced avocado, toasted sesame seeds and fresh cilantro. A drizzle of toasted sesame oil or crispy rice noodles are both delicious too!
left: a block of tofu surrounded by other ingredients. right: a bowl of crumbled tofu.

What Even is Vegan Oyster Sauce?

I know you may be perplexed by the thought of “vegan oyster sauce.” But it’s actually quite common at many Asian grocery stores and is usually derived from shiitakes or other mushrooms. It’s great whenever you want to add a ton of umami and dimensionality to a recipe without adding in a bunch of separate ingredients.

If you don’t have an Asian market near you, I have even been able to find it at places like Safeway and Sprouts! Kikkoman makes one, and Sprouts has their own store brand (at the time of writing this in spring 2024). You can also order it online.

It’s delicious in these tofu lettuce wraps but also makes an excellent sauce for stir fries and a variety of Asian noodle dishes (like homemade chow mein).

How to Make Tofu Lettuce Wraps

cooking crumbled tofu in a carbon steel wok

Stir-fry crumbled tofu until it’s golden brown and slightly crisp. This will help cook off the extra moisture and firm up the tofu so your filling isn’t mushy. (If you pressed your tofu ahead of time, this step will go by faster.) Once it’s browned to your preference, transfer it to a bowl and set it aside.

left: chili paste blooming in oil. right: onions and scallions being stir-fried in oil.

In the same skillet or wok, heat oil and stir-fry onion, the white parts of the scallion, and (optional) chili paste over medium-high heat until onion is translucent.

onion, scallions, garlic, and ginger being stir-fried in a carbon steel wok

Toss in your garlic and ginger and pan-fry for another minute or two. Cook for a few minutes until garlic and ginger are tender. By this point, your kitchen should be smelling real nice.

crumbled tofu, sauce, water chestnuts, and scallions being added to stir-fry

Add the browned tofu back into the pan along with soy sauce and vegan oyster sauce (or hoisin). Stir fry for a minute or two until the tofu is evenly coated and the sauce begins to caramelize slightly. Then toss in water chestnuts and the green parts of the green onions.

filling for tofu lettuce wraps being stir-fried in a wok

Stir-fry for a few extra minutes just to heat through. To serve, pile your filling into your lettuce leaves and top with whichever additions you please.

Sarah’s Recipe Tips

  • Press your tofu if you have time. It’s not strictly necessary, but it will help your tofu brown much faster and more evenly. You can either use a tofu press or do it the old fashioned way: wrap your tofu in a clean kitchen towel (or paper towels) and weigh it down with a slightly heavy object (like a cutting board or cookie sheet). Even pressing it for a few minutes while you dice up your other ingredients is great.
  • Switch up your protein choice. Feel free to sub in a different vegan protein if you’re into that. Vegan beef crumbles, vegan chicken pieces, and soy curls are a few “meatier” options. Crumbled tempeh would be a great choice too.
  • Get creative with your toppings and add-ins. This recipe is a perfect blank canvas; don’t be afraid to improvise. Add any of your favorite diced veggies into the mix — shiitakes, red bell peppers, zucchini. And switch up your fresh toppings depending on what you’re craving. Some thought starters: fresh sliced avocado, toasted almonds, pickled daikon and carrot, chopped peanuts, fresh herbs (such as cilantro or Thai basil). A squeeze of fresh lime would also elevate this dish! The sky’s the limit.

Storage and Reheating

The tofu filling will stay good in the fridge in an airtight container for up to 3 days. Just keep your lettuce separate from your filling until you’re ready to eat.

To reheat, simply pop the filling in the microwave or back into a pan and heat it up over the stove.

More Tofu Recipes

vegan lettuce wraps with beefy crumbles

Tofu Lettuce Wraps

One of my favorite healthy dinner recipes. It's high in protein, full of flavor, and perfect for when you're craving something easy and fresh.
4.8 from 4 votes
Print Pin Rate
Prep Time: 20 minutes
Cook Time: 15 minutes
Servings: 5 servings
Author: Sarah Sullivan


  • 1 (14-16 oz) block firm or extra-firm tofu
  • 2 tablespoons neutral vegetable oil
  • 1 small white onion diced
  • 2 sliced green onions white and green parts separated
  • 1 tablespoon minced garlic
  • 2 teaspoons minced ginger
  • 1 (8 oz) can water chestnuts drained and diced
  • 2 tablespoons soy sauce
  • 1/4 cup vegan oyster or sub hoisin sauce if you can't find it
  • 1 tablespoon sambal chili paste optional
  • 1 head iceberg, butter, or romaine lettuce leaves separated, cleaned and patted or spun dry

Ideas for Toppings

  • shredded carrots
  • chopped roasted cashews or peanuts
  • fresh cilantro or scallions
  • crispy rice noodles
  • toasted slivered almonds


Press the Tofu (optional but recommended)

  • If you can think ahead, I recommend pressing your tofu for at least 15 minutes to help it brown faster and more evenly. You can use a tofu press, or simply wrap your block of tofu in a clean, lint-free kitchen towel and gently weigh it down with a heavy plate or small cutting board.

Brown the Tofu

  • Heat 1 tablespoon vegetable oil in a nonstick skillet or wok over medium-high heat. Crumble in the tofu and stir fry until golden brown (this can take anywhere between 5-10 minutes). It will brown faster if you pressed it ahead of time.
    Exact time will also vary depending on your stove/pan, so just keep an eye on it and stir it regularly until it browns and begins to crisp slightly.
    This step will improve the texture so the filling isn't mushy.
  • Once the tofu is browned to your preference, turn off the heat and transfer it into a bowl. Set aside.

Cook the Lettuce Wrap Filling

  • In the same pan/wok, heat 1 tablespoon vegetable oil over medium-high heat. Once oil is hot, add in the chili paste (careful: it may splatter a bit), diced onion, and white parts of the scallions. Stir fry for 2-3 minutes, or until onion is translucent. (This will go fast if using a thinner pan or carbon steel wok; it may take extra time if using a heavier pan.)
  • Add garlic and ginger and stir fry for another 1-2 minutes, until very fragrant.
  • Add back in the browned tofu, along with the diced water chestnuts, soy sauce, and vegan oyster sauce (or hoisin). Stir-fry for a few more minutes to distribute the flavor and to heat through. The sugars in the sauce may begin to caramelize slightly (this is good), but keep an eye on it and reduce the heat as needed so they don't burn.
  • Add in the green parts of the green onion and stir fry for 1 more minute to distribute.


  • To serve, scoop filling into lettuce leaves, top with your favorite garnishes, and enjoy!


Vegan oyster sauce: Check your local Asian market, as most of them carry a mushroom-based vegan oyster sauce alternative! This is a pantry staple for me. If you can’t find it, you can use hoisin sauce (which is sweeter) or a stir fry sauce of choice. In a pinch, even teriyaki sauce can be used, though the flavor profile will be very different.
Did you make this recipe?We’d love for you to leave a review on the website! You can also share a photo on IG and tag @sarahsvegankitchen_ or #sarahsvegankitchen.

One Comment

  1. 5 stars
    This recipe was so good! I loved the water chestnuts in it as it added a nice crunch and texture! Next time I am adding cilantro, as I think it will take it next level!

Leave a Comment

Your email address will not be published. Required fields are marked *


Recipe Rating