Preheat the oven: Set oven to 350°F (175°C). Grease and flour two 9-inch round cake pans.
Mix dry ingredients: In a medium bowl, whisk together flour, baking powder, and salt.
Cream butter and sugar: In a large bowl, beat butter and sugar until light and fluffy. Add eggs one at a time, mixing well after each, then stir in vanilla extract.
Combine wet and dry: Gradually add the flour mixture to the butter mixture, alternating with milk, beginning and ending with flour. Mix until just combined.
Bake the cakes: Divide batter evenly between prepared pans and bake for 30–35 minutes, or until a toothpick inserted in the center comes out clean. Cool in pans for 10 minutes, then transfer to wire racks to cool completely.
Make the caramel frosting: In a saucepan over medium heat, melt butter and stir in brown sugar. Cook for 2 minutes, stirring constantly, then slowly add milk. Bring to a boil and stir for 1–2 minutes. Remove from heat and let cool slightly.
Finish the frosting: Gradually whisk in powdered sugar and vanilla until smooth and spreadable.
Frost the cake: Place one cooled cake layer on a serving plate, spread frosting evenly on top, then place the second cake layer. Frost top and sides with remaining caramel frosting.