Preheat oven to 350°F (175°C). Grease and flour two 9-inch round cake pans, then line the bottoms with parchment paper circles.
In a large bowl, sift together the flour, sugar, cocoa powder, baking soda, and salt twice to ensure no lumps remain.
In a separate bowl, whisk together the eggs, oil, buttermilk, food coloring, vinegar, and vanilla extract until smooth and evenly combined.
Pour the wet ingredients into the dry ingredients and stir gently with a wooden spoon just until combined and no flour streaks remain. Do not overmix.
Divide the batter evenly between the prepared pans and bake for 28-32 minutes, until a toothpick inserted in the center comes out with just a few moist crumbs.
Cool the cakes in the pans for 10 minutes, then turn out onto wire racks and cool completely before frosting, at least 1 hour.
For the frosting, beat the cream cheese and butter together on medium speed until smooth and creamy, about 2 minutes.
Add the powdered sugar one cup at a time, mixing on low speed after each addition, then add the vanilla and beat just until fluffy, about 30 seconds.
Place one cake layer on a serving plate, spread with 3/4 cup frosting, top with the second layer, then frost the top and sides with the remaining frosting. Refrigerate for 30 minutes to set the frosting before slicing.