On parchment paper, use a pencil to trace the bottom of the cake pans and cut the circles out. Spray the inside of the cake pan with non-stick cooking spray, add the traced circles to the pan with the pencil side down and spray with more non-stick spray.
Preheat oven to 350°F.
Add the flour to a medium bowl and then sift in the cocoa powder, baking soda, and salt. Whisk to combine.
In a large bowl, use a hand-held or stand mixer to cream together the butter and sugar until smooth. Mix in the eggs, one at a time, and mix until just combined after each. Mix in the vanilla extract, white vinegar, red food coloring, and sour cream until smooth and combined. Be careful not to overmix.
In 3 additions, alternate adding the dry ingredients and the buttermilk, mixing until just combined after each. After the final addition mix until smooth. Scrape down the sides of the bowl with a rubber spatula as needed.
Pour the batter into the prepared cake pans. Gently tap the pans on the counter to release any trapped air bubbles and bake for 32 minutes. A toothpick inserted into the center should come out clean.
Allow to cool slightly on the counter and then cool completely in the fridge for at least 2 hours before frosting.
Make the cream cheese frosting: In a large bowl or bowl of a stand mixer, beat the softened cream cheese and butter until smooth. Mix in the vanilla extract. Add the powdered sugar 2 cups at a time and mix until mostly incorporated, then mix until smooth after all of it has been added.
Use a large serrated knife to level off the domed part of the cake. Add 2 - 3 coats of frosting to the cake, refrigerate for at least 30 minutes between coatings.
Cover the cake and store in the fridge for up to 5 days. Unfrosted cake layers can also be wrapped in plastic wrap and frozen for up to 3 months.