
Vegan Tofu and Broccoli Stir-Fry with Ginger Garlic Sauce
Crisp, golden cubes of cornstarch-coated tofu and bright, crisp-tender broccoli are tossed in a glossy ginger-garlic soy sauce. It's a fast weeknight dinner that needs one pan and tastes like takeout.
- Prep
- 15 min
- Cook
- 20 min
- Wait
- 20 min
- Total
- 55 min
- Makes
- 4 servings (about 6 cups stir-fry, plus rice)
Steps
Before you start
- Start pressing the tofu first. It needs 20 minutes, and you can prep everything else while it presses.
- If you're serving rice, start cooking it now so it's ready when the stir-fry is done.
- Stir-frying moves quickly. Measure the sauce and have the garlic, ginger and scallions chopped before you turn on the heat.
- Use a very large skillet or wok (12 inches / 30 cm or wider) so the tofu browns instead of steaming.
Press the tofu
- Drain the tofu and set it on a double layer of clean kitchen towels or paper towels.
- Cover with more towels, set a heavy skillet or cutting board on top, and weigh it down with a couple of cans.
- Let it press for 20 minutes.
+ Show details− Hide details
Ready when: The towels are damp and the tofu feels noticeably firmer and drier
Tip: Don't skip the pressing. Wet tofu steams and sticks instead of crisping.
Mix the sauce
- In a small bowl or liquid measuring cup, whisk the soy sauce, vegetable broth, rice vinegar, maple syrup, cornstarch (2 tsp), sesame oil and red pepper flakes, if using.
- Whisk until no lumps of cornstarch remain.
+ Show details− Hide details
Ready when: The sauce looks uniform with no cornstarch clumps at the bottom
Tip: Cornstarch settles quickly. Whisk the sauce again right before you pour it into the pan.
Prep the vegetables
- While the tofu presses, cut the broccoli into 1½-inch (4 cm) florets and slice the peeled stems ¼ inch (6 mm) thick.
- Mince the ginger and garlic.
- Slice the scallions and keep the white and green parts in separate piles.
- Set everything next to the stove.
+ Show details− Hide details
Ready when: Florets are similar in size so they cook evenly
Tip: Cut the stem slices thin. They cook at the same rate as the florets.
Coat the tofu
- Cut the pressed tofu into ¾-inch (2 cm) cubes and pat them dry once more.
- Place them in a large bowl, sprinkle with 2 tbsp (16 g) cornstarch, and gently toss until every cube has a thin, even, dry-looking coating.
+ Show details− Hide details
Ready when: No wet patches show and no loose clumps of cornstarch remain
Tip: Toss gently so the cubes don't break apart.
Sear the tofu
- Heat 2 tbsp (30 ml) of the oil in the 12-inch (30 cm) skillet or wok over medium-high heat until it shimmers, about 2 minutes.
- Add the tofu in a single layer.
- Let it sit undisturbed for 2 minutes, then turn the cubes every 2 minutes with a spatula for about 8 minutes total.
- Transfer to a plate.
+ Show details− Hide details
Ready when: Most sides of the tofu are deep golden and crisp, and the cubes release easily from the pan
Tip: If the tofu sticks, wait another 30 seconds before turning. It releases once a crust forms.
Steam-fry the broccoli
- Return the pan to medium-high heat and add the remaining 1 tbsp (15 ml) oil.
- Add the broccoli and stir-fry for 2 minutes.
- Pour in the 3 tbsp (45 ml) water, cover immediately, and cook for 2 to 3 minutes.
- Uncover and stir-fry for 30 seconds until the water evaporates.
+ Show details− Hide details
Ready when: Broccoli is bright green with a few browned spots, and a knife tip pierces a stem with slight resistance
Tip: Keep the lid close at hand, because the water will spatter when it hits the hot pan.
Cook the aromatics
- Reduce the heat to medium.
- Push the broccoli to the sides of the pan, add the ginger, garlic and scallion whites to the center, and stir for 30 seconds before mixing everything together.
+ Show details− Hide details
Ready when: The ginger and garlic smell fragrant and are pale gold, not brown
Tip: Garlic burns quickly and turns bitter. Move on to the next step as soon as it smells fragrant.
Glaze and combine
- Whisk the sauce again and pour it into the pan.
- Stir constantly for about 1 minute while it bubbles.
- Return the tofu to the pan, then toss gently for 1 minute to coat.
+ Show details− Hide details
Ready when: The sauce turns glossy, thickens enough to coat the back of a spoon, and clings to the tofu and broccoli
Tip: Don't let the tofu simmer in the sauce for long, or the crust will soften.
Serve
- Remove the pan from the heat.
- Divide the stir-fry over hot rice, if using, and top with the scallion greens and toasted sesame seeds.
- Serve right away, while the tofu is still crisp.
Good to know
Tips
- Dry tofu is the secret to crispness. Press it and pat it dry before coating.
- Use a pan large enough to hold the tofu in one layer. If yours is smaller, brown the tofu in two batches.
- Keep the heat at medium-high for the tofu and broccoli, but lower it before adding garlic so it doesn't scorch.
- For more heat, add 1 to 2 tsp chili garlic sauce to the sauce, or increase the red pepper flakes.
Make ahead
Press, cube and coat the tofu up to 8 hours ahead and refrigerate it covered. Whisk the sauce and chop the vegetables up to 1 day ahead and store them in separate containers in the fridge. Whisk the sauce again before using.
Storage & reheating
Room temperature: up to 2 hours. Fridge: up to 4 days in an airtight container. Freezer: not recommended, because the broccoli turns soft and the tofu becomes spongy. Reheat in a skillet over medium heat for 3 to 4 minutes with a splash of water, or microwave for 1 to 2 minutes, stirring halfway. The tofu won't be as crisp after storage.
Substitutions
- soy sauce → tamari or coconut aminos. Tamari keeps the dish gluten-free. Coconut aminos are sweeter and less salty, so use 4 tbsp (60 ml) and skip the maple syrup.
- cornstarch → potato starch or arrowroot. Use the same amount. Both give a crisp coating.
- broccoli crowns → broccolini, green beans or snow peas. Use the same weight. Trim and cut into 2-inch (5 cm) lengths, and steam for 2 minutes instead of 2 to 3.
- unseasoned rice vinegar → fresh lime juice or apple cider vinegar. Use the same amount for a similar tang.





