Preheat oven to 350°F (175°C). Grease and flour two 9-inch round cake pans.
In a large bowl, whisk together flour, sugar, baking soda, and salt.
In a separate bowl, whisk together eggs, buttermilk, vegetable oil, and vanilla extract.
Gradually add the wet ingredients to the dry ingredients, mixing until just combined. Do not overmix.
Divide the batter evenly between the prepared cake pans.
Bake for 30-35 minutes, or until a wooden skewer inserted into the center comes out clean.
Let the cakes cool in the pans for 10 minutes before inverting them onto a wire rack to cool completely.
While the cakes are cooling, prepare the cream cheese frosting. In a large bowl, beat together softened cream cheese and butter until smooth.
Gradually add powdered sugar, alternating with milk, and beat until smooth and creamy. Stir in vanilla extract.
To make the caramel drizzle, combine sugar and water in a saucepan over medium heat. Stir until sugar dissolves, then stop stirring. Cook until the syrup turns an amber color.
Carefully stir in the heavy cream and butter. The mixture will bubble up. Continue to cook and stir until smooth.
Let the caramel cool slightly before drizzling.
Once the cakes are completely cool, frost the top of one cake layer with the cream cheese frosting. Place the second cake layer on top.
Frost the top and sides of the cake with the remaining cream cheese frosting.
Drizzle the caramel sauce over the top of the cake.
Slice and serve.
Notes
This cake is best served at room temperature. Leftovers can be stored in an airtight container in the refrigerator for up to 3 days.