Prepare 2 9-inch or 8-inch pans by oiling and flouring the pans and lining with parchment paper.
Whip softened butter, oil and granulated sugar for few minutes until light and fluffy, followed by the vanilla essence.
Add the eggs one at a time and beat.
In a small bowl, combine all purpose flour with unsweetened cocoa powder.
Add the flour mix alternating with the buttermilk in 3 parts, starting and ending with flour.
**Add in the red food colouring 1 tsp at a time until you get the desired colour.
Into a small bowl with baking soda add the white vinegar and mix. Quickly add this to the batter and give it a final mix.
Divide the batter equally into the prepared pans and tap a few times on the countertop to get rid of air bubbles.
Bake in a 325 F preheated oven for 25 mins in a 9-inch pan. (Check if the cake is done at about 20 - 22 mins with a skewer. It should come out clean.) Cool in the pan for 15 mins, then transfer to a wire rack to cool completely.
In the meantime prepare to prepare the yummy cream cheese frosting. Beat butter until it turns pale and fluffy.
Continue to beat, adding cream cheese, powdered sugar, vanilla extract and a pinch of salt. Keep beating until light and fluffy.
Refrigerate the frosting if its too runny, while you level the cake layers. Lining the serving plate with strips of parchment paper makes cleanup easier.
Fill the cake layers with approx. 1 cup cream cheese frosting and give a crumb coat (a light coat of the frosting to lock the crumbs in) and chill in the refrigerator for 20 mins.
Spread the final layer of frosting and decorate as you wish using the cake crumbs. Refrigerate for at least an hour so that the cake can set in order to get clean cuts. Super moist and flavorful red velvet cake with cream cheese frosting is ready to serve. Enjoy!!