Preheat oven to 350 degrees. Line a cupcake pan with liners, set aside.
In a bowl, sift or whisk together the dry ingredients: flour, baking powder, and salt. Set aside.
In a large bowl, add butter and sugar. Beat until creamed and fluffy.
Add eggs and vanilla extract. Mix until incorporated and smooth.
Add half of your dry ingredients to butter mixture. Stir until just combined. Add half of milk, again stirring until just combined. Repeat once more, adding remaining dry ingredients, and remaining milk, stirring until just incorporated.
Portion batter between 15 cupcake liners, filling about halfway full. Bake in preheated oven for 18-20 minutes, or until a toothpick comes out clean.
Remove pan from oven and allow to cool for 5 minutes before transferring cupcakes to a wire rack to finish cooling.
American Buttercream Frosting
In a large bowl, add room temperature butter and beat until creamy, about 1 minute.
Add confectioner's sugar and slowly mix until ingredients are fully combined. Then, whip at high speed for 2-3 minutes, or until light and fluffy.
Add vanilla extract and heavy cream, then whip until fluffy, another 1 to 2 minutes.
Pipe or spread frosting with a knife onto cupcakes and serve.
Cupcakes are best served the same day of baking, but will remain moist for up to 48 hours when covered in a sealed container.
This recipe can be made with all-purpose flour instead of cake flour, but the texture will be coarser and cupcakes will not turn out as tender. I highly recommend using cake flour.
The frosting recipe will make enough to pipe tall, dramatic frosting onto each cupcake (like shown in the photos). If you'd like to make less frosting and spread on with a knife, cut the recipe in half.