Prep: Preheat the oven to 350°F. Line a 12-hole muffin pan with cupcake liners and set aside.
Mix dry ingredients: In a medium bowl, stir together the flour, baking powder, and salt. Set aside.
Heat milk mixture: In a small pot or microwave-safe bowl, add the milk, butter, oil, and vanilla extract. Heat it on the stovetop or in the microwave just until the butter has melted. Don't let it boil. Remove it from the heat and cover to keep it warm while you start making the batter.
Whip eggs: In a large mixing bowl, add the eggs and sugar. Use an electric hand mixer fitted with a whisk attachment to beat the mixture on low-medium speed increasing to medium-high speed for 6 whole minutes until the egg mixture has tripled in volume and becomes very pale (almost white) in colour.
Mix in flour: Add half of the flour mixture and mix on low speed until just barely combined. Add the rest of the flour mixture and mix again until just barely combined. Some flour patches in the batter and up the sides of the bowl are fine as you'll continue mixing some more in the next step.
Stream in hot milk: With the mixer on low speed, slowly stream the hot milk mixture into the batter with your other hand, mixing until just combined into a smooth, fluid batter.
Fill cupcake liners: Fill the cupcake liners about ⅔ full. Bake cupcakes for about 20-22 minutes or until a toothpick inserted in the middle comes out clean with a few crumbs and the tops spring back when gently pressed.
Cool: Let the cupcakes cool in the pan only for about 5 minutes before lifting them out of the pan and transferring them to a wire rack to cool completely