Preheat the oven to 350℉. Line a 12-cup muffin pan with paper liners. In a medium bowl, whisk together the flour, baking powder and salt.
In a large bowl, use an electric mixer to beat the butter on medium-high speed until smooth (about 1 minute). Add the sugar and beat until creamy, about 4 more minutes. Beat in the eggs, one at a time, then the vanilla. With the mixer on low speed, beat in the flour mixture in 3 batches, alternating with the milk in 2 batches. Increase the speed to medium high and beat until just combined.
Spoon the batter into the muffin cups, filling each ¾-full. Bake until the tops of the cupcakes spring back when pressed gently, 20 to 25 minutes. Remove the pan from the oven with oven mitts. Let the cupcakes cool 5 minutes in the pan, then remove from the pan and let cool completely on a rack.
MAKE THE FROSTING:
In a large bowl, use an electric mixer to combine the cream cheese, butter, vanilla and salt on medium-speed until creamy, 1 to 2 minutes. Gradually beat in the powdered sugar on medium-low speed until smooth, then beat on medium-high until thick and fluffy- 1 to 2 more minutes.
Spoon the frosting into a piping bag, snip a corner and pipe the frosting on to the cupcakes (or spread the frosting on top). Decorate with sprinkles, if you wish!
Notes
Use room temperature butter, eggs, and cream cheese for a smooth batter and frosting.
Cream the butter and sugar for a full 3 to 4 minutes to create a light, fluffy texture.
Do not overmix once the flour is added — mix just until combined.
Fill cupcake liners only ¾ full to prevent overflow.
Let cupcakes cool completely before frosting.
Store frosted cupcakes in the refrigerator up to 4 days; bring to room temperature before serving.
For extra vanilla flavor, add ¼ teaspoon vanilla bean paste to the batter.