Preheat the oven to 350°F and line two 8 or 9 inch round pans with parchment paper on the bottom. Butter and grease the sides. Set aside.
In a large bowl, sift together the flour, cocoa powder, baking soda, and salt. Set aside.
In a stand mixer fit with the paddle attachment, beat together the butter, oil and sugar until combined, about 2 minutes. Add the eggs in one at a time, beating until light and fluffy. Add the vanilla extract and food coloring and mix well.
Stir together the buttermilk and vinegar and set aside.
Alternate adding the dry ingredients and the buttermilk and vinegar mixture in 4 different additions, making sure you end with the flour. Do not over mix.
Divide the batter between the prepared pans and bake for 25 to 30 minutes or until a toothpick inserted into the middle comes out mostly clean. Allow the cakes to cool completely.
In a stand mixer with a paddle attachment, cream the butter and cream cheese until light and fluffy, about 2 minutes. Add in the vanilla extract, salt, and powdered sugar and whip to combine, about 2 minutes more.
Place the first cake on a plate, then top with a large dollop of frosting. Layer the second and third layers, frosting in between each. Finish with frosting the outside of the cake with the remaining frosting!