Tofu fried rice is a Chinese homestyle fried rice where pan browned cubes of marinated tofu take the place of meat. Like my egg fried rice and my vegetable fried rice, it’s a simple, satisfying meal that comes together quickly. I love adding tofu because it turns the dish into a more protein-rich meal, making it perfect for a busy weeknight. Plus, my 2.5-year-old loves tofu and happily picks out the crispy cubes to snack on while he eats.
It’s important for me to mention that I completely redeveloped and improved the version I originally published a few years ago. If you’ve been following me for a while, you might remember that the original recipe skipped the tofu marinade, and many of you told me in the comments that the rice tasted under-seasoned. I listened to your feedback and added a quick soy sauce and honey marinade, followed by a light coating of cornstarch before pan-frying. I love this new version because the tofu is seasoned all the way through, with a chewy golden crust and a tender center.
To keep it simple, I cook this recipe in 3 parts. First, I marinate the tofu while I prep the aromatics and the sauce, then I give the tofu a light coating of cornstarch before pan frying. Once the tofu comes out, I use the same pan to cook the fried rice with day-old rice, the sauce, frozen vegetables, and a late scramble of beaten eggs. This updated version is much more flavorful, and it’s so easy to make by following my step by step instructions. Don’t just take my word for it, give it a try!


Ingredients
Most tofu fried rice recipes treat the tofu like a add-on topping and skip seasoning the cubes. In mine, the marinade and cornstarch dust on the tofu do as much for the dish as the sauce does for the rice, so I prep the tofu, the sauce, and the stir fry ingredients as 3 separate groups:


Tofu
I always use extra firm tofu because it stays intact through marinating, dusting, and pan browning. I marinate the cubes in soy sauce and honey for a short rest so the tofu has flavor on the inside, not just on the crust. Right before the pan, I dust the drained cubes with cornstarch, which gives me the chewy outer layer I want.
Sauce
I premix soy sauce, dark soy sauce, oyster sauce, sugar, and white pepper in one small bowl before I turn on the heat.
Stir fry
I use cold day-old jasmine rice and I separate green onion whites from greens, since the whites go in early with minced ginger and the greens finish the dish off heat. Frozen mixed vegetables (I use peas and corn, sometimes carrots) go in straight from the freezer, and beaten eggs scramble on an oiled empty side of the pan late in the cook. I finish with a drizzle of toasted sesame oil for fragrance.
How to Make
1. Marinate the tofu: Pat the tofu dry with paper towels and cut it into 2/3 inch cubes. Transfer the cubes to a large ziploc bag. Mix the soy sauce and honey in a small bowl, pour the mix into the bag, and flip the bag a few times to coat. Marinate for 10 to 15 minutes.


2. Mix the sauce: While the tofu marinates, stir the sauce ingredients together in a small bowl and set aside.
3. Dust the tofu with cornstarch: Open the bag just enough to drain the marinade liquid without losing the cubes, then transfer the tofu to a shallow tray or a wide bowl. Dust with cornstarch one tablespoon at a time, tossing with a light hand between each addition. Uneven coating is fine.


4. Brown the tofu: Heat a large skillet or wok with 2 tablespoons of oil over medium-high heat until the oil shimmers, then turn the heat down to medium. Add the tofu, shaking off any loose cornstarch, and lay the cubes out in one layer with gaps in between so they do not stick. Cook without moving until the bottom turns golden, then flip to brown more sides. The more sides you brown, the better the texture, I aim for 2 to 3 nicely browned sides per cube, which takes 12 to 15 minutes total.


5. Cook the aromatics: Add 1 tablespoon of oil to the same pan along with the green onion whites and minced ginger. Stir for 30 seconds or so until fragrant.


6. Toast the rice: Add the cold day-old rice and turn the heat to medium-high. Stir to separate the grains and coat them with the oil. Let the rice toast, stirring occasionally, for 4 to 5 minutes, until the grains look dry and a little crispy. Drop the heat to medium if the pan gets too hot.


7. Add the sauce and vegetables: Pour in the premixed sauce. Stir and cook until the rice is coated all the way through with no white grains left. Add the mixed vegetables and stir-fry for another minute.


8. Scramble the eggs: Push everything to one side of the pan, add the last 1 tablespoon of oil to the empty side, and pour the beaten eggs over the oil. Let the bottom set, then scramble lightly until the eggs are mostly cooked with a few runny parts. Mix everything together and chop the egg curds into small pieces with the spatula so they distribute through the rice.


9. Finish with tofu and aromatics: Add the browned tofu back to the pan and stir with a light hand so the cubes stay whole. Turn off the heat. Stir in the green onion greens and toasted sesame oil. Serve hot in wide bowls.


Cooking notes
Cook only half a block of tofu per portion of rice: Half a block per the rice quantity here gives the best ratio, the cubes brown better in a smaller batch and the rice still tastes like fried rice instead of tofu stew. If I want to cook the whole block at once, I double the marinade and brown the cubes in 2 separate batches.
Save a small handful of browned tofu for the top of the bowl: Once the tofu is browned, I set aside a small handful before the rest goes back into the pan. Those reserved cubes go on top of the finished bowl, which gives me a visible crispy layer that has not softened against the warm rice.
Use cold rice that has been refrigerated overnight: Day-old jasmine rice straight from the fridge has dried out enough on the surface that the grains stay separate in the pan. Fresh hot rice releases steam and turns the fried rice into a soft clump no matter how much heat I run.
Premix the sauce before the heat comes on: Once the rice hits the pan, the cooking moves fast and there is no time to measure soy sauce out of 3 different bottles. One small bowl with everything stirred together pours in when I need it.
Thaw frozen vegetables when there is time: Thawed peas and corn release less water into the pan and finish in under a minute.
Watch the marinated tofu closely on the heat: The honey in the marinade makes the cornstarch crust brown faster than plain pan fried tofu. I flip the cubes frequently in the first few minutes and drop the heat to medium-low at the first sign of dark spots so the crust comes out golden, not bitter.


Serving Recommendation
I serve tofu fried rice as a one bowl meal on weeknights at home when I do not want to plate two dishes. The marinated tofu, the eggs, and the mixed vegetables already give me protein, fat, carbs, and a green from the onion tops in the same bowl, so a side dish would be extra plates to wash for no real gain. I scoop a generous portion into a wide bowl, top it with the reserved crispy tofu cubes, and eat it with a soup spoon.
For a fuller meatless dinner with a few dishes on the table, I serve the fried rice next to a green vegetable like bok choy with oyster sauce, a cold appetizer like spicy cucumber salad, and a bowl of Chinese egg drop soup for the soup course.
If I have one non-vegetarian friend or family member at the table, I add a quick protein like easy shrimp and broccoli on the side so the meal works for everyone without rebuilding the whole menu.
Frequently Ask Questions
Can I skip the marinade to save time?
The marinade is the whole reason I redeveloped this recipe, so do not skip it. Without the soak, the tofu tastes plain against the seasoned rice and the dish ends up under-seasoned even with a good sauce. If the marinade time is a wait, I recommend to start the tofu first, then prep the rest of the ingredients while the bag sits on the counter, so the soak does not add to the total cook time.
How do I make this vegetarian or vegan?
For a vegetarian version, swap the regular oyster sauce for vegetarian oyster sauce, which is widely sold at Asian markets and online and pours the same way out of the bottle. To go fully vegan, do the oyster sauce swap above, then swap the honey in the tofu marinade for maple syrup or sugar and skip the scrambled eggs in step 8. I replace the eggs with extra browned tofu cubes added in step 9 for the same protein.
How to store leftovers?
The fried rice keeps in an airtight container in the fridge for 3 days. I reheat single portions in a skillet over medium heat with a small splash of oil, which loosens the grains without making the rice soggy. I do not freeze this one because the tofu crust softens after thawing and the egg curds turn rubbery.
Want to Save This Recipe?
Enter your email below & we’ll send it to your inbox. Plus get great new recipes from us every week!
This tofu fried rice is a satisfying meat-free one bowl meal made with marinated extra firm tofu, cold day-old jasmine rice, and frozen mixed vegetables tossed in a savory soy and oyster sauce. I love making it on busy weeknights because in just 40 minutes, I have a delicious dinner ready for my family.
Prevent your screen from going dark
Pat tofu dry with paper towels. Cut tofu into 2/3” (2 cm) cubes and transfer to a large ziploc bag. Mix soy sauce and honey together in a small bowl, pour into the bag. Gently flip the bag a few times to coat tofu with the liquid. Marinate for 10 to 15 minutes.
Mix all the sauce ingredients together in a small bowl.
When tofu is marinated, open the bag just a little bit without letting the tofu fall out. Drain the liquid and discard it. Transfer the tofu to a shallow tray or a big bowl. Dust with cornstarch, a tablespoon at a time, and gently toss to coat the tofu. It is OK if the tofu isn’t coated evenly.
Heat a large skillet or a wok with 2 tablespoons of oil over medium-high heat until it shimmers, then turn to medium heat. Add the tofu with your hand, shaking off any extra cornstarch, spreading it into one layer with some gaps in between so the tofu pieces don’t stick together. Cook without moving until the bottom turns golden. Flip to brown the other sides until most sides have browned and there’s no dry cornstarch on the surface (*Footnote 3). If the tofu starts to brown too fast or burn, turn to medium-low heat to prevent the tofu from burning. Transfer cooked tofu to a plate. Set aside.
Add 1 tablespoon of oil, the green onion whites and ginger. Cook and stir to release the fragrance, 30 seconds or so.
Add the rice and turn to medium-high heat. Stir to separate the grains and coat the grains evenly with the oil. Let the rice toast, stirring occasionally, until the rice appears dry and crispy, 4 to 5 minutes. Turn to medium heat if the pan gets too hot.
Pour in the sauce. Stir and cook until the rice is evenly coated. Add the frozen vegetables. Stir and cook for 1 minute.
Move everything to one side of the pan, add the remaining 1 tablespoon of oil on the empty side, and pour the beaten eggs over the oil. Let cook until the bottom sets, then scramble lightly until mostly cooked, with some runny parts. Mix everything together and cut the rice into small pieces, until evenly distributed.
Add the cooked tofu back into the pan. Gently stir everything together so the tofu stays intact. Turn off the heat. Stir in the green onion greens and sesame oil. Serve hot as a side dish.
Ingredient Substitution Guide
- If you prefer to cook the whole block of tofu, double the marinade. I also highly recommend cooking the tofu in two batches for the best result.
- I used frozen peas and frozen corn in my recipe. Frozen carrots work well too. I like to thaw the vegetables before cooking. But it’s OK if they are not thawed. In this case, add the vegetables after step 5, after you cook the green onion whites and ginger.
- The more sides of the tofu that are browned, the better the texture. But it does take a long time if you want to brown all sides. I usually make sure at least 2 to 3 sides are browned nicely, which takes 12 to 15 minutes.
Serving: 1serving, Calories: 414kcal, Carbohydrates: 52g, Protein: 13g, Fat: 17g, Saturated Fat: 3g, Polyunsaturated Fat: 9g, Monounsaturated Fat: 4g, Trans Fat: 0.1g, Cholesterol: 82mg, Sodium: 978mg, Potassium: 313mg, Fiber: 3g, Sugar: 4g, Vitamin A: 2582IU, Vitamin C: 7mg, Calcium: 65mg, Iron: 2mg
Did you make this recipe?
I’d love to hear how it turned out for you! Please take a moment to leave a 5-star rating ⭐️ and share your thoughts in the comments further down the page. It really helps others discover the recipe too.
