Preheat oven to 350°. Spray two 9" round cake pans with bakers spray and line the bottom with parchment paper. Alternatively you can butter the pans and sprinkle flour in them, shaking out the excess.
In the bowl of a stand mixer, add the flour, sugar, cocoa, baking soda, baking powder and salt. Mix on low speed to combine. Add the eggs, buttermilk, warm water, oil and vanilla beating on medium speed till combined. About 2 minutes. Divide batter into the two prepared pans.
Bake for 35-40 minutes until toothpick inserted comes out clean. Cool on wire rack for 10-15 minutes then flip out onto the wire rack, removing the parchment paper. Cool completely.
To make the frosting, beat the butter and cream cheese until fluffy. Add in the cocoa powder and vanilla. Beat until combined. Using a spatula to scrap down the sides. Then add the powdered sugar a cup at time while beating on low speed. Add the milk a tbsp at a time. I added 6 cups of powdered sugar and found the whole 1/3 cup was needed.
Once cakes have cooled completely, assemble cake. Put the first layer down then smear a generous amount of frosting on top of the layer. Then add the second cake layer and frost the top and sides. I like to shave some semi-sweet chocolate on top as a garnish and strawberries are always pretty.