Preheat your oven to 350°F (175°C). Grease and flour the cake pans or line them with parchment paper for easy removal.
In a mixing bowl, whisk together the flour, sugar, baking soda, salt, and cocoa powder until well combined.
In another bowl, mix the oil, buttermilk, eggs, food coloring, vanilla extract, and vinegar. Beat until fully blended.
Gradually add the wet mixture to the dry ingredients, mixing until just combined. Be careful not to overmix.
Divide the batter evenly between the two prepared cake pans. Smooth the tops with a spatula.
Bake in the preheated oven for 25-30 minutes, or until a toothpick inserted in the center comes out clean.
Allow the cakes to cool in the pans for 10 minutes, then gently remove them and let them cool completely on cooling racks.
For the cream cheese frosting, beat the softened cream cheese and butter together until smooth and creamy.
Gradually add the powdered sugar and vanilla extract, mixing until well combined. If the frosting is too thick, you can add milk to achieve the desired consistency.
Once the cakes are completely cooled, place one layer on a serving plate and spread a generous amount of frosting on top. Place the second layer on top and frost the top and sides of the cake.
Decorate as desired and serve.