Preheat the oven to 350°F/180°C and line a muffin pan with 12 cupcake liners. Set aside while you make the batter.
In a large bowl, using an electric hand mixer, cream together the butter, sugar, oil, and vanilla extract on medium speed.
Then add the eggs, one at a time, mixing after each until it’s well-incorporated. Set the bowl of wet ingredients aside.
In a separate medium bowl, whisk together the flour, baking soda, and salt.
Pour about one third of the dry ingredients into the wet ingredients and mix until combined using the electric mixer. Then add the rest of the dry ingredients.
Gradually add in the milk and continue mixing just until everything is combined into a smooth cake batter.
Fill the cupcake liners halfway with batter. Bake in the preheated oven for 19-22 minutes, or until a cupcake inserted into the center of a cupcake comes out clean. Allow to rest and cool for at least 15 minutes. Do not fill and frost until they are fully cool.
Cut a 1 inch deep and about 1-inch diameter circle into the center of the cupcake from the top, using a small knife, and being careful not to go all the way to the bottom. Remove the “core” and discard the bottom of it, keeping just the circle “lid” for the hole. Fill the hole with about 2 tablespoons of sprinkles, and then replace the lid.
Make buttercream cupcake frosting by creaming butter in a large bowl. Slowly add the powdered sugar and beat until smooth. Add the vanilla and heavy cream, and continue blending to get a smooth frosting. Add additional cream if needed to get the right consistency for piping.
Use a piping bag to generously frost the pinata cupcakes in any style that you like. Top with more sprinkles.
You can make these up to 3 days ahead of time if they are stored in the refrigerator in an airtight container. Cupcakes without icing can also be wrapped individually and frozen for up to three months.