Preheat your oven to 350°F (175°C). Grease and flour the two 9-inch round cake pans, and line the bottoms with parchment paper.
In a large mixing bowl, sift together the flour, sugar, baking soda, salt, and cocoa powder.
In another bowl, whisk together the vegetable oil, buttermilk, eggs, red food coloring, vanilla extract, and vinegar until well combined.
Gradually mix the wet ingredients into the dry ingredients until just combined; avoid overmixing.
Divide the batter evenly between the two prepared pans. Bake 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 remove from pans and cool completely on a wire rack.
To make the cream cheese filling, beat the softened cream cheese and powdered sugar together in a mixing bowl until smooth. Add the sour cream and vanilla extract, mixing until well blended.
Once the cakes have cooled completely, level the tops with a cake leveler or serrated knife if necessary. Place one cake layer on a serving plate.
Spread the cream cheese filling over the first layer, then place the second layer on top.
For the frosting, beat the softened butter until creamy. Gradually add the powdered sugar, heavy cream, and vanilla extract, mixing until smooth and fluffy.
Frost the top and sides of the cake with the buttercream frosting, smoothing it out with a spatula. Decorate with red sprinkles if desired.
Refrigerate the cake for about 30 minutes before serving to set the filling and frosting slightly. Slice the cake and enjoy!