Preheat the oven to 350°F and line a cupcake pan with 12 liners. Set aside.
In a medium bowl, whisk or sift together the flour, baking powder, baking soda, and salt. Set aside.
In a large bowl with an electric mixer, beat the butter, sugar, oil, and vanilla extract on medium-high speed until light and fluffy, scraping down the sides of the bowl often. This will take a few minutes.
Add the eggs one at a time, beating each one into the mixture.
Reduce the mixer speed and add half of the dry mixture. Beat just until combined, then slowly add in the milk and slowly mix until absorbed. Add the remaining flour mixture and beat together until smooth, scraping down the sides of the bowl. Be careful not to overmix.
Divide the batter into the 12 lined cupcake holes and bake for 15-18 minutes, or until a toothpick inserted into the center comes out clean.
Let the cupcakes cool for a few minutes before transferring them to a cooling rack. Make sure they are cooled before frosting them.
Frosting:
Combine the butter, powdered sugar, vanilla and milk in a large mixing bowl and beat together with an electric mixer until fluffy and smooth. If the frosting seems too thick, add more milk. If it seems to thin, add more powdered sugar.
Pipe the frosting on the cupcakes or smear the frosting on with an offset spatula. Top with sprinkles of your choice and enjoy.
If you've tried this recipe, come back and let us know how it was in the comments or star ratings.