Moist Vegan Red Velvet Cake with Cream Cheese Frosting
This vegan red velvet cake is just as rich and tender as the classic, with no eggs or dairy.

It’s baked in two layers and slathered with a tangy vegan cream cheese frosting that balances the subtle cocoa flavour.
Why This Vegan Red Velvet Cake Works
I love that this cake stays moist for days, even without eggs. A splash of vinegar and a good non-dairy milk give it that characteristic tender crumb.
The cream cheese frosting is just as tangy as the dairy kind, and it’s not too sweet, so the whole slice feels balanced.
Ingredients

- 1 ½ cups all-purpose flour: spooned and levelled, not scooped.
- 1 cup granulated sugar: fine white sugar works best.
- 2 tbsp cocoa powder: plain cocoa, not Dutch-process, for the classic colour and rise.
- 1 tsp baking powder
- ½ tsp baking soda
- ½ tsp salt
- 1 cup unsweetened non-dairy milk: soy milk adds structure, almond or oat also work.
- 1 tbsp apple cider vinegar: or white vinegar
- ⅓ cup neutral oil: vegetable, canola, or melted refined coconut oil.
- 2 tsp vanilla extract
- 2 tbsp red food colouring: use a vegan brand.
For the frosting
- ½ cup vegan butter: softened to room temperature.
- 8 oz vegan cream cheese: also softened, block style is better than spreadable.
- 3 to 4 cups powdered sugar: sifted if lumpy.
- 1 tsp vanilla extract
- pinch of salt
Variations / Substitutions
- Make it gluten-free: swap the flour for a 1-to-1 gluten-free baking blend.
- Muted red hue: omit the food colouring for a bronzy cocoa colour that still tastes great.
- Coconut oil: melted coconut oil adds a subtle buttery note, but the cake will firm up more when cold.
- Skip the frosting: dust the cooled cake with powdered sugar instead. If you want individual servings, try the Vanilla Cupcake recipe.
How to Make Vegan Red Velvet Cake
Step 1: Curdle the Milk

Pour 1 cup of non-dairy milk into a liquid measuring cup and stir in 1 tablespoon of vinegar. Let it sit for about 5 minutes. The mixture will thicken slightly and look curdled, which is exactly what you want.
The acid sours the milk, acting like buttermilk to give the cake a soft, tender crumb without eggs.
Step 2: Whisk the Dry Ingredients

In a large bowl, whisk together 1 ½ cups flour, 1 cup sugar, 2 tablespoons cocoa powder, 1 teaspoon baking powder, ½ teaspoon baking soda, and ½ teaspoon salt. Whisk for about 30 seconds so everything is evenly distributed.
You’ll notice small flecks of cocoa, but no white streaks of flour or baking powder. That even mix helps the cake rise without tunnels.
Step 3: Combine the Batter

Stir the oil, vanilla, and red food colouring into the curdled milk. Pour the wet mixture into the dry bowl all at once. Stir with a spatula just until no dry flour remains, about 30 seconds of gentle folding. A few small lumps are fine.
Overmixing will make the cake dense, so stop as soon as the batter looks smooth and red. It will be thin and pourable.
Step 4: Bake the Layers

Preheat the oven to 350°F (175°C). Grease two 8-inch round cake pans and line the bottoms with parchment. Divide the batter evenly between them. Bake on the middle rack until a toothpick inserted in the centre comes out clean, 22 to 25 minutes.
The tops will spring back lightly when pressed, and the cake should start to pull away from the sides. Let the cakes cool in the pans for 10 minutes, then turn them out onto a wire rack to cool completely.
Step 5: Make the Frosting

In a large bowl, beat ½ cup vegan butter and 8 oz vegan cream cheese with an electric mixer on medium speed until smooth, about 2 minutes. Scrape the bowl, then add 3 cups of powdered sugar, 1 teaspoon vanilla, and a pinch of salt. Beat on low until combined, then increase the speed and whip for another 1 to 2 minutes until fluffy.
Taste the frosting and add more powdered sugar if you want it sweeter or stiffer. If it feels too soft to spread, chill it for 15 minutes while the cakes finish cooling.
Step 6: Frost and Slice

Place one completely cooled cake layer on a serving plate. Spread about 1 cup of frosting over the top, then set the second layer on it. Cover the top and sides with the remaining frosting, swirling it with the back of a spoon.
Slice and serve right away, or let the cake chill for 20 minutes to firm up the frosting for cleaner cuts. The crumb will still be moist and the tangy icing will be the first thing you taste.
Tips for the Best Vegan Red Velvet Cake
- Use gel food colouring: if you can find a vegan brand. It gives a deeper red without adding extra liquid that could thin the batter.
- Weigh the flour: if you have a scale. Too much flour makes the cake dry and heavy.
- Chill the frosting briefly: if the kitchen is warm. A 15-minute rest in the fridge makes it far easier to spread.
- Make the layers a day ahead.: Wrap them well and store at room temperature, then frost the next day. The crumb stays moist and the flavour deepens slightly.
Bake times by pan size:
| Pan size | Bake time |
|---|---|
| Two 8-inch rounds | 22 to 25 minutes |
| Two 9-inch rounds | 20 to 23 minutes |
| Cupcakes (12 count) | 18 to 20 minutes |
Storing Leftover Cake
- Refrigerate: the frosted cake in an airtight container for up to 5 days. The frosting seals in moisture, so it stays tender even cold.
- Serve cold: straight from the fridge for a firmer frosting, or let slices sit at room temperature for 15 minutes to soften up.
Frequently Asked Questions
Can I use a natural red food colour?
Yes, beet powder or a puree gives a softer red. Start with a small amount and taste as you go, since it can add a faint earthy note.
Why did my cake sink in the middle?
It usually comes from overmixing the batter, opening the oven door too soon, or baking at too low a temperature. Check with a toothpick and avoid peeking before 20 minutes.
Can I make these as cupcakes instead?
Yes, divide the batter into a lined 12-cup tin and bake for 18 to 20 minutes using the same oven temperature. Cool completely before piping or spreading the frosting.
Is the vinegar really necessary?
Yes, it reacts with the baking soda to help the cake rise and create a tender crumb. You won’t taste it once the cake is baked.
Can I skip the frosting and still get a red velvet taste?
Of course. A light dusting of powdered sugar over the cooled cake keeps it simple. The cocoa and vanilla still shine through.

Ingredients
Method
- Stir non-dairy milk and vinegar together and let sit 5 minutes until curdled.
- Whisk flour, sugar, cocoa, baking powder, baking soda, and salt in a large bowl for 30 seconds.
- Mix oil, vanilla, and red food colouring into the curdled milk, then pour into the dry ingredients. Fold just until no flour streaks remain.
- Preheat oven to 350°F (175°C). Divide batter between two greased 8-inch pans and bake until a toothpick comes out clean, 22 to 25 minutes. Cool 10 minutes in pans, then turn out onto a rack to cool completely.
- Beat vegan butter and cream cheese until smooth, about 2 minutes. Add powdered sugar, vanilla, and salt, then whip 1 to 2 minutes until fluffy.
- Place one cooled layer on a plate, spread about 1 cup frosting, top with second layer, and frost the top and sides. Slice and serve.
