Preheat the oven to 350°F (175°C). Grease two 9-inch round cake pans and line the bottoms with parchment paper.
In a large bowl, whisk together the flour, sugar, baking soda, salt, and cocoa powder until well combined.
In a separate bowl, whisk together the vegetable oil, buttermilk, eggs, red food coloring, white vinegar, and vanilla extract until smooth.
Pour the wet ingredients into the dry ingredients. Mix with a spatula just until combined and no dry streaks remain. Do not overmix.
Divide the batter evenly between the two prepared cake pans.
Bake for 30-35 minutes, or until a toothpick inserted into the center comes out clean. Let the cakes cool in the pans for 10 minutes, then turn out onto wire racks to cool completely.
To make the frosting: In a large bowl, beat the softened cream cheese and butter until smooth. Gradually add the powdered sugar and vanilla, beating until light and fluffy.
Level the cooled cakes with a knife if needed. Place one layer on a serving plate, spread a thick layer of frosting over the top, then place the second layer on top.
Frost the top and outside of the entire cake with the remaining cream cheese frosting. Chill until ready to serve.