Preheat the oven to 350°F (175°C). Grease and flour the two 9-inch round cake pans. Line the bottoms with parchment paper for easy removal.
In a large mixing bowl, sift together the flour, sugar, cocoa powder, baking soda, baking powder, and salt.
In another bowl, whisk together the buttermilk, vegetable oil, eggs, and vanilla extract. Add in the purple food coloring until well combined.
Gradually combine the wet ingredients with the dry ingredients, mixing until just combined. Do not overmix.
Divide the batter evenly between the two prepared cake pans.
Bake in the preheated oven for 25-30 minutes, or until a toothpick inserted into the center comes out clean. Allow the cakes to cool in the pans for 10 minutes, then turn them out onto a cooling rack to cool completely.
While the cakes are cooling, prepare the cream cheese frosting. In a mixing bowl, beat the softened butter and cream cheese together until smooth and creamy.
Gradually add in the powdered sugar, mixing well. Stir in the vanilla extract and add milk as needed to achieve desired consistency.
Once the cakes are completely cooled, place one layer on a serving plate. Spread a generous amount of frosting on top, then place the second layer on top and frost the top and sides of the entire cake.
Slice and serve. Enjoy your beautiful Purple Velvet Cake!