Mushroom and tofu stir fry is savory, satisfying, and surprisingly simple comfort food that brings restaurant quality flavor right to your kitchen! With marinated tofu that soaks up all that delicious soy sesame goodness, meaty cremini mushrooms, and a slightly sweet glaze.

Why You’ll Love This Recipe
- The tofu gets incredibly flavorful from marinating, then develops a gorgeous golden-brown crust that’s absolutely irresistible
- Those cremini mushrooms cook down into meaty, umami-packed bites that taste like they’ve been simmering for hours
- It’s flexible enough for meal prep, marinate the tofu in the morning, cook it when you get home
- The sweet-savory sauce creates a glossy glaze that makes everything taste like it came from your favorite Asian restaurant
- Perfect for both vegetarian nights and anyone looking to add more plant-based meals without missing a thing
Mushroom and Tofu Stir Fry
- Total Time: 60-90 minutes
- Yield: 4 servings
Description
A savory and satisfying mushroom and tofu stir fry featuring extra-firm tofu marinated in soy sauce, rice vinegar, and sesame oil, then pan-fried until golden and tossed with caramelized cremini mushrooms in a sweet-savory glaze. Finished with fresh green onions for a pop of color and flavor. Perfect for easy weeknight dinners or meal prep, this healthy recipe is naturally vegetarian and can easily be made gluten-free.
Ingredients
For the Marinated Tofu
-
14 ounces extra-firm tofu, drained well (this is key—you want the firmest tofu you can find)
-
5 tablespoons soy sauce (or gluten-free tamari if needed)
-
1 tablespoon rice vinegar, unseasoned (the plain kind, not the seasoned sushi rice vinegar)
-
2 teaspoons sesame oil (a little goes a long way with that nutty flavor)
-
Pinch of red pepper flakes (just enough to wake everything up)
For the Stir Fry
-
1 pound fresh cremini mushrooms, also called Baby Bella (they have more flavor than white button mushrooms)
-
3 tablespoons peanut oil, divided (or any neutral vegetable oil you have)
-
3 slices fresh ginger root (for infusing the oil with flavor)
-
3 slices garlic cloves (same deal—we’re building layers of taste)
For the Sauce
-
1 tablespoon Monkfruit sweetener (or your favorite low-carb sweetener, or regular sugar works too)
-
2 tablespoons sugar-free apricot preserves (peach or orange preserves work beautifully too)
For Garnish
-
⅓ cup green onions, diagonally sliced (or more if you’re a green onion fan like me)
Instructions
Drain your extra-firm tofu well in a colander set in the sink. Slice the block horizontally to make two thinner slabs, then sandwich them between a double layer of paper towels. Set a heavy pan or skillet on top and let gravity do its thing for at least 10 minutes.
While your tofu is getting pressed, whisk together the soy sauce, rice vinegar, sesame oil, and red pepper flakes in a small bowl. This takes maybe 30 seconds, but it’s where all the flavor lives.
Cut your pressed tofu into 1-inch cubes, try to keep them roughly the same size so they cook evenly. Toss them into a zip-loc bag, pour in the marinade, seal it up, and give it a gentle massage to coat everything. Pop it in the fridge for at least 30 minutes, but honestly? An hour is better, and all day is best.
When you’re ready to cook, set a colander over a bowl and pour in your marinated tofu. Let it drain really well, you want those cubes to be as dry as possible so they’ll brown instead of steam. Save that marinade! We’re using it for the sauce.
Pour the drained marinade into a measuring cup and stir in the Monkfruit sweetener and sugar-free preserves. Give it a good whisk until everything’s combined and set it aside within reach of the stove.
Heat your wok or large skillet over high heat until it’s nice and hot. Add 1 tablespoon of oil and swirl it around. When it shimmers, add the sliced ginger and garlic and let them sizzle for about 1-2 minutes, just until you can smell that gorgeous aroma filling your kitchen. Fish them out with a spoon and toss them. They’ve done their job.
Lower your heat to medium-high and immediately add the drained tofu cubes. Spread them out in a single layer as much as possible and let them sit undisturbed for a minute or two. Then turn them with tongs or a spatula, working in batches if needed, until they’re browned on most sides. This takes about 5-7 minutes total.
While the tofu is browning, slice your mushrooms into pieces roughly the same size as your tofu cubes. This way everything cooks evenly and looks nice together.
Transfer the tofu to a plate and turn your heat back up to high. Add the remaining 2 tablespoons of oil and toss in all those mushrooms. They’ll release liquid first. Keep stirring occasionally and let them cook until all that moisture evaporates and they start to brown, about 4-5 minutes.
Add the tofu back into the wok with the mushrooms. Give everything a gentle stir to combine, being careful not to break up the tofu too much.
Pour in your marinade mixture, lower the heat to medium-high, and let it all simmer together. Stir gently every minute or so. The sauce will start to reduce and get a little thicker, coating everything in that gorgeous glossy glaze. This takes about 2-3 minutes.
Toss in the sliced green onions and cook for just 1 more minute, you want them to soften slightly but still have some bite and bright color. Serve immediately while everything’s hot and glazed.
Notes
When you’re browning the tofu, resist the urge to keep stirring it. Let it sit and develop that crust. The same goes for the mushrooms—they need direct contact with the hot pan to caramelize. If you keep moving them around, they’ll steam instead of brown.
If you’re worried about the tofu sticking, make sure your pan is properly heated and the oil is hot before you add the tofu. A properly preheated pan with hot oil creates a natural non-stick surface.
The biggest mistake people make is using medium or soft tofu for stir fries. It falls apart and turns mushy. Always, always use extra-firm. Some stores even carry super-firm tofu, which is even better for this recipe.
Want to meal prep? Press and marinate the tofu the night before, or even in the morning before work. When you get home, dinner comes together in about 15 minutes of actual cooking time. I’ve also had success pressing multiple packages of tofu at once on Sunday and storing them in the fridge to use throughout the week.
- Prep Time: 15 minutes + Marinating Time: 30-60 minutes
- Cook Time: 15-20 minutes
- Category: Main Dish
- Method: Stir Fry
- Cuisine: Asian-Inspired
Ingredients You’ll Need
For the Marinated Tofu
- 14 ounces extra-firm tofu, drained well (this is key—you want the firmest tofu you can find)
- 5 tablespoons soy sauce (or gluten-free tamari if needed)
- 1 tablespoon rice vinegar, unseasoned (the plain kind, not the seasoned sushi rice vinegar)
- 2 teaspoons sesame oil (a little goes a long way with that nutty flavor)
- Pinch of red pepper flakes (just enough to wake everything up)
For the Stir Fry
- 1 pound fresh cremini mushrooms, also called Baby Bella (they have more flavor than white button mushrooms)
- 3 tablespoons peanut oil, divided (or any neutral vegetable oil you have)
- 3 slices fresh ginger root (for infusing the oil with flavor)
- 3 slices garlic cloves (same deal—we’re building layers of taste)
For the Sauce
- 1 tablespoon Monkfruit sweetener (or your favorite low-carb sweetener, or regular sugar works too)
- 2 tablespoons sugar-free apricot preserves (peach or orange preserves work beautifully too)
For Garnish
- ⅓ cup green onions, diagonally sliced (or more if you’re a green onion fan like me)
Why These Ingredients Work
Let’s talk about why this combination is pure magic. Extra-firm tofu is your foundation here—it holds its shape during cooking and has enough structure to develop that coveted crispy exterior while staying tender inside. Pressing out the water isn’t just a suggestion; it’s what allows the tofu to actually absorb the marinade instead of just sitting in it.
The soy sauce brings that deep, salty umami flavor we all crave, while the rice vinegar adds a subtle tang that brightens everything. Sesame oil is like the secret handshake of Asian cooking—just a touch gives you that authentic, nutty aroma that makes your kitchen smell like a real restaurant.
Cremini mushrooms are the unsung heroes. They’re meatier and more flavorful than regular white mushrooms, and when you cook them down, they release their moisture and then caramelize into these savory, almost meaty bites that complement the tofu perfectly.
That infused oil trick with ginger and garlic? It’s an old-school technique that seasons the oil before you even start cooking. You get all that aromatic flavor without burning the garlic later. The sugar-free preserves mixed into the marinade create a glossy, restaurant-style glaze without loading up on sugar. It’s just enough sweetness to balance the salty-savory notes.
Essential Tools and Equipment
- A good colander for draining tofu
- Paper towels and a heavy pan or cast iron skillet for pressing the tofu
- A gallon-size zip-loc bag for marinating
- A wok or large skillet (12-inch works great)
- A small bowl to catch the marinade
- A measuring cup for mixing the sauce
- A sharp knife for slicing everything evenly
- Tongs or a spatula for turning the tofu
Step-by-Step Instructions
Step 1: Press the Tofu
Drain your extra-firm tofu well in a colander set in the sink. Slice the block horizontally to make two thinner slabs, then sandwich them between a double layer of paper towels. Set a heavy pan or skillet on top and let gravity do its thing for at least 10 minutes.
Step 2: Make the Marinade
While your tofu is getting pressed, whisk together the soy sauce, rice vinegar, sesame oil, and red pepper flakes in a small bowl. This takes maybe 30 seconds, but it’s where all the flavor lives.
Step 3: Marinate the Tofu
Cut your pressed tofu into 1-inch cubes, try to keep them roughly the same size so they cook evenly. Toss them into a zip-loc bag, pour in the marinade, seal it up, and give it a gentle massage to coat everything. Pop it in the fridge for at least 30 minutes, but honestly? An hour is better, and all day is best.
Step 4: Drain the Tofu
When you’re ready to cook, set a colander over a bowl and pour in your marinated tofu. Let it drain really well, you want those cubes to be as dry as possible so they’ll brown instead of steam. Save that marinade! We’re using it for the sauce.
Step 5: Mix the Sauce
Pour the drained marinade into a measuring cup and stir in the Monkfruit sweetener and sugar-free preserves. Give it a good whisk until everything’s combined and set it aside within reach of the stove.
Step 6: Season the Oil
Heat your wok or large skillet over high heat until it’s nice and hot. Add 1 tablespoon of oil and swirl it around. When it shimmers, add the sliced ginger and garlic and let them sizzle for about 1-2 minutes, just until you can smell that gorgeous aroma filling your kitchen. Fish them out with a spoon and toss them. They’ve done their job.
Step 7: Cook the Tofu
Lower your heat to medium-high and immediately add the drained tofu cubes. Spread them out in a single layer as much as possible and let them sit undisturbed for a minute or two. Then turn them with tongs or a spatula, working in batches if needed, until they’re browned on most sides. This takes about 5-7 minutes total.
Step 8: Prep the Mushrooms
While the tofu is browning, slice your mushrooms into pieces roughly the same size as your tofu cubes. This way everything cooks evenly and looks nice together.
Step 9: Cook the Mushrooms
Transfer the tofu to a plate and turn your heat back up to high. Add the remaining 2 tablespoons of oil and toss in all those mushrooms. They’ll release liquid first. Keep stirring occasionally and let them cook until all that moisture evaporates and they start to brown, about 4-5 minutes.
Step 10: Combine Everything
Add the tofu back into the wok with the mushrooms. Give everything a gentle stir to combine, being careful not to break up the tofu too much.
Step 11: Add the Sauce
Pour in your marinade mixture, lower the heat to medium-high, and let it all simmer together. Stir gently every minute or so. The sauce will start to reduce and get a little thicker, coating everything in that gorgeous glossy glaze. This takes about 2-3 minutes.
Step 12: Finish with Green Onions
Toss in the sliced green onions and cook for just 1 more minute, you want them to soften slightly but still have some bite and bright color. Serve immediately while everything’s hot and glazed.

You Must Know
The single most important thing about this recipe is pressing the tofu properly. I know it seems like extra work, but it’s the difference between tofu that’s bland and watery versus tofu that’s flavorful and has texture. If you skip this step, the tofu won’t brown properly and won’t absorb the marinade—it’ll just sit there being sad and spongy.
Another critical point: don’t skip marinating. Even 30 minutes makes a difference, but if you can plan ahead and marinate for several hours or all day, you’ll have tofu that tastes like it’s been slow-cooked in flavor. It’s like the difference between a quick weeknight meal and something you’d order at a restaurant.
Personal Secret: I always make extra sauce. Sometimes I double the marinade mixture and set half aside before adding the tofu. Then when the stir fry is done, I drizzle a little of that fresh, bright sauce over the top right before serving. It adds this pop of flavor that makes people think you did something fancy, but really you just planned ahead.
Pro Tips & Cooking Hacks
Here’s what I’ve learned from making this more times than I can count. First, use the freshest tofu you can find—check the expiration date and pick the package that’s furthest out. Fresh tofu has better texture and flavor.
When you’re browning the tofu, resist the urge to keep stirring it. Let it sit and develop that crust. The same goes for the mushrooms—they need direct contact with the hot pan to caramelize. If you keep moving them around, they’ll steam instead of brown.
If you’re worried about the tofu sticking, make sure your pan is properly heated and the oil is hot before you add the tofu. A properly preheated pan with hot oil creates a natural non-stick surface.
The biggest mistake people make is using medium or soft tofu for stir fries. It falls apart and turns mushy. Always, always use extra-firm. Some stores even carry super-firm tofu, which is even better for this recipe.
Want to meal prep? Press and marinate the tofu the night before, or even in the morning before work. When you get home, dinner comes together in about 15 minutes of actual cooking time. I’ve also had success pressing multiple packages of tofu at once on Sunday and storing them in the fridge to use throughout the week.
Flavor Variations & Suggestions
This recipe is wonderfully flexible once you understand the basic technique. You can swap the cremini mushrooms for shiitake mushrooms for a more intense, woodsy flavor, or use a mix of different mushrooms if you’re feeling fancy. I’ve made this with oyster mushrooms too, and they add this delicate, almost seafood-like flavor that’s really special.
If you want more vegetables, bell peppers, snap peas, or broccoli florets all work beautifully. Just add them when you’re cooking the mushrooms and adjust the cooking time as needed. Baby bok choy stirred in at the very end adds a nice pop of green and a subtle bitter note that balances the sweetness.
For the sauce, feel free to experiment with different preserves. Peach gives it a summery vibe, orange adds brightness, and I’ve even used fig preserves for a more sophisticated flavor. If you don’t care about keeping it sugar-free, regular apricot or peach jam works perfectly and adds a beautiful sheen.
Want it spicier? Add more red pepper flakes to the marinade, or stir in a teaspoon of chili-garlic sauce with the final sauce. Sometimes I finish it with a drizzle of Sriracha for those days when I need extra heat.
You could also add cashews or peanuts for crunch, or swap the green onions for Thai basil leaves torn right at the end for an herby, anise-like flavor that’s completely different but equally delicious.
Make-Ahead Options
This recipe is a meal-prepper’s dream. The tofu actually benefits from marinating longer, so you can press it and get it into the marinade up to 24 hours ahead. I often do this on Sunday afternoon for a Monday dinner, or in the morning before work for an easy evening meal.
The cooked stir fry stores beautifully in the refrigerator for 3-4 days. In fact, I think it tastes even better the next day when all the flavors have had time to meld together. Just store it in an airtight container and reheat it in a skillet with a tiny bit of oil.
You can also prep all your vegetables ahead—slice the mushrooms, chop the green onions, mince the ginger and garlic, and store them in separate containers in the fridge. Then when it’s time to cook, everything’s ready to go.
What to Serve With Mushroom and Tofu Stir Fry
This stir fry is delicious served over steamed jasmine rice or brown rice—the sauce soaks into the rice and makes every bite perfect. If you’re keeping it low-carb, cauliflower rice works wonderfully and soaks up all that glossy sauce.
For a more substantial meal, I love serving this alongside some simple steamed edamame sprinkled with sea salt, or a crisp cucumber salad dressed with rice vinegar and a touch of sesame oil. The cool, crunchy cucumber is the perfect contrast to the warm, savory stir fry.
If you want to keep the Asian-inspired theme going, some homemade egg drop soup or hot and sour soup makes a lovely starter. For something lighter, a simple miso soup with tofu and seaweed is traditional and comforting.
Drink-wise, green tea is classic, but I also love this with a crisp white wine like Riesling or Gewürztraminer. The slight sweetness in those wines plays beautifully with the sauce. If you prefer beer, a light lager or wheat beer cuts through the richness nicely.

Allergy Information
This recipe contains soy in both the tofu and soy sauce, so it’s not suitable for anyone with soy allergies. If you need a soy-free version, you could substitute the tofu with cubed chicken breast or firm white fish, and use coconut aminos instead of soy sauce.
For gluten-free diets, simply swap regular soy sauce for gluten-free tamari or coconut aminos. The rest of the recipe is naturally gluten-free.
The recipe is naturally dairy-free, egg-free, and nut-free as written, though if you use peanut oil, that would be a concern for anyone with peanut allergies. Any neutral vegetable oil works as a substitute.
If you need to avoid sesame, you can omit the sesame oil, though you’ll lose some of that characteristic Asian flavor. A tiny bit of toasted walnut oil could work as a substitute, or just use more of your neutral cooking oil.
Storage & Reheating
Store any leftovers in an airtight container in the refrigerator for up to 3-4 days. The tofu and mushrooms hold up remarkably well—they don’t get soggy or lose their texture like some stir fries do.
To reheat, I prefer using a skillet over medium heat with about a teaspoon of oil. This method brings back some of that crispy texture on the tofu and keeps the mushrooms from getting rubbery. Heat for about 5 minutes, stirring occasionally, until everything’s warmed through. You can also microwave it in 1-minute intervals, stirring between each interval, but the texture won’t be quite as good.
If the sauce has thickened too much in the fridge, add a splash of water or vegetable broth when reheating to loosen it up. Sometimes I add an extra handful of fresh green onions to the leftovers when reheating—it brightens everything up and makes it taste freshly made.
Pro Tip: The leftovers are fantastic turned into fried rice. Just chop up the tofu and mushrooms a bit smaller, fry them with some cooked rice, an egg, and extra soy sauce. It’s like getting a completely different meal from the same ingredients.
Questions I Get Asked A Lot
My tofu didn’t brown properly. What went wrong?
This usually happens when the tofu wasn’t pressed long enough and still has too much water in it, or the pan wasn’t hot enough. Make sure you press the tofu for at least 10 minutes (longer is better), and drain it really well after marinating. Also, your pan needs to be properly preheated with hot oil before the tofu goes in. And remember—don’t crowd the pan or the tofu will steam instead of sear.
What can I substitute for the sugar-free preserves?
Regular jam or preserves work perfectly if you’re not worried about sugar content. Apricot, peach, or orange marmalade are all delicious. You could also use honey or maple syrup, though the flavor will be slightly different. Start with 1 tablespoon and taste the sauce before adding more—you want just enough sweetness to balance the salty soy sauce.
Can I make this dish spicier?
Absolutely! Add more red pepper flakes to the marinade, or stir in some chili-garlic sauce, Sriracha, or sambal oelek when you add the final sauce. You could also add some fresh sliced Thai chilies with the green onions at the end. Just remember you can always add more heat, but you can’t take it away, so start conservatively and adjust to taste.
💬 Tried this recipe? I’d love to hear how it turned out! Leave a comment below and let me know if you added any special twists or what you served it with.



