Pressed tofu takes on a sticky, charred BBQ glaze the same way chicken or pork would, soaking up smoke and sauce while it grills in slabs threaded onto skewers.
The trick is in the press and the sear: firm tofu that’s had its water squeezed out grills instead of steams, so the edges catch real grill marks and the glaze has something to cling to instead of sliding off.
A simple homemade BBQ sauce, brushed on in two coats, builds a sticky, slightly charred crust without any single ingredient tasting too strong on its own.

Ingredients
For the tofu
- 2 blocks (14 ounces each) extra firm tofu, pressed and cut into thick squares
- 2 tablespoons neutral oil
- Wooden or metal skewers
For the BBQ sauce
- 1 cup ketchup
- 3 tablespoons brown sugar
- 2 tablespoons apple cider vinegar
- 1 tablespoon soy sauce or tamari
- 1 teaspoon smoked paprika
- 1 teaspoon garlic powder
- 1/2 teaspoon onion powder
- 1/4 teaspoon black pepper
Why You’ll Love These BBQ Tofu Skewers
- The tofu grills up with real char marks and a sticky glaze, not a soft, sauce-soaked texture.
- The BBQ sauce is made from pantry staples, no bottled sauce required.
- The recipe is naturally vegan and dairy free, with no substitutions needed to make it that way.
- Skewers make portioning and grilling straightforward, since every piece cooks at the same rate.
- The sauce recipe makes extra, so there’s always some left over for dipping.
Ingredient Notes
Extra firm tofu is the right choice here, not silken or soft. Anything softer than extra firm will fall apart on the skewer once it hits the grill. If your grocery store only carries firm rather than extra firm, press it a little longer than usual to compensate for the extra water it holds.
Pressing the tofu matters more than any other single step. Wrap the blocks in a towel, set something heavy on top, and let them sit for at least 20 minutes. Skipping this step leaves too much water in the tofu, and that water steams the outside instead of letting it char. A tofu press works too if you have one, but a heavy pan and a stack of cans does the same job.
Ketchup is doing double duty in the sauce, providing both the tomato base and most of the sweetness balance against the vinegar. A low sugar ketchup will make the final sauce noticeably less sweet, so taste and adjust the brown sugar if that’s what’s in your pantry.
Smoked paprika gives the sauce its char adjacent flavor even before the tofu hits the grill. Regular paprika will still work, but the sauce loses some of the smokiness that usually only comes from an actual wood fire.
How to Make BBQ Tofu Skewers
Press the tofu for at least 20 minutes, then cut each block into thick squares, about six pieces per block. Thicker pieces hold up better on the skewer and stay juicy in the center while the outside chars.
Whisk together the ketchup, brown sugar, apple cider vinegar, soy sauce, smoked paprika, garlic powder, onion powder, and black pepper in a small saucepan. Bring to a light simmer over medium heat and cook for about five minutes, stirring occasionally, until the sauce thickens slightly and coats the back of a spoon. Set aside a portion for serving before it touches any raw tofu.
Thread the tofu squares onto skewers, leaving a small gap between each piece so heat can reach all sides. Brush the skewers lightly with neutral oil first, then with a thin coat of the BBQ sauce.
Heat a grill pan or outdoor grill to medium high. Lay the skewers down and let them sit without moving for two to three minutes, until char marks form and the tofu releases easily from the grates. Flip and repeat on the other side.
Brush on a second coat of sauce during the last minute of cooking on each side, so it has time to set into a sticky glaze rather than dripping straight off. Move the skewers to a plate and let them rest for a minute before serving, which gives the glaze a moment to firm up further.
Tips for Success
- Press the tofu properly before anything else. This one step affects the texture more than any spice in the sauce.
- Don’t move the skewers too early on the grill. Letting the first side sit undisturbed is what creates real char marks.
- Brush sauce on in two thin coats rather than one thick one, so it builds a glaze instead of burning.
- Keep a portion of the sauce separate from the start for serving, since sauce that’s touched raw tofu shouldn’t go back on the table.
- Soak wooden skewers in water for at least 20 minutes before threading, so they don’t scorch on the grill.
- Cut the tofu pieces roughly the same size so they finish grilling at the same time instead of some pieces charring before others catch up.
Storage
Store leftover grilled tofu skewers in the fridge for up to 4 days, and keep extra BBQ sauce in a separate sealed container for up to a week. Reheat the tofu in a dry pan over medium heat for a few minutes per side to bring back some of the char, since a microwave will leave it soft. The sauce can be gently rewarmed on the stove or used cold as a dip.
FAQ
Can I bake these instead of grilling?
Yes. Bake at 425°F on a lined sheet for about 20 minutes, flipping halfway, then broil for a minute or two at the end to get some char.
Do I need to marinate the tofu first?
Not necessarily. Pressing the tofu well and brushing on sauce in two coats while grilling builds enough flavor without a separate marinating step, though you can marinate for up to an hour if you want a deeper flavor.
Is this sauce very sweet?
It’s moderately sweet, balanced by the vinegar and smoked paprika. Reduce the brown sugar by half if you prefer a more savory glaze.

Ingredients
Method
- Press the tofu for at least 20 minutes, then cut each block into thick squares, about six pieces per block.
- Whisk together the ketchup, brown sugar, vinegar, soy sauce, smoked paprika, garlic powder, onion powder, and black pepper in a saucepan. Simmer 5 minutes, stirring occasionally, until slightly thickened. Set aside a portion for serving.
- Thread the tofu onto skewers, leaving small gaps between pieces. Brush lightly with oil, then with a thin coat of BBQ sauce.
- Heat a grill pan or outdoor grill to medium high. Grill 2 to 3 minutes per side without moving, until char marks form.
- Brush on a second coat of sauce during the last minute on each side. Rest 1 minute before serving with the reserved sauce.


