Prep the pan and oven: Heat oven to 350°F (175°C). Grease a 9x13-inch metal baking pan and line the bottom with parchment for easy lifting.
Lightly flour the pan if you want extra insurance.
Whisk dry ingredients: In a large bowl, whisk 2 1/2 cups all-purpose flour, 1 3/4 cups granulated sugar, 2 teaspoons baking powder, 1/2 teaspoon baking soda, and 1 teaspoon kosher salt until well combined.
Cream and combine fats: In another bowl, beat 1/2 cup softened unsalted butter with 1/4 cup neutral oil until smooth. You can use a hand mixer or stand mixer on medium speed for 1–2 minutes.
Add eggs and vanilla: Beat in 3 large eggs plus 2 yolks, one at a time, then add 2 teaspoons vanilla extract. Mix until glossy and well blended.
Alternate dry and buttermilk: Add the dry ingredients in three additions, alternating with 1 cup buttermilk, starting and ending with dry.
Mix on low until just combined. Do not overmix. The batter should be thick but pourable.
Bake: Spread batter evenly in the pan.
Tap the pan on the counter to pop large air bubbles. Bake 25–32 minutes, until the top is set, edges are lightly golden, and a toothpick comes out with a few moist crumbs.
Cool completely: Set the pan on a rack. Cool the cake in the pan until room temperature before frosting.
Warm cake will melt the frosting.
Make the frosting: In a bowl, whisk 1/2 cup unsalted butter, melted and slightly cooled, with 1/2 cup unsweetened cocoa powder until glossy. Add 3 cups powdered sugar, a pinch of salt, 1/3 cup milk or cream, and 1 teaspoon vanilla. Beat until smooth and fluffy, 2–3 minutes.
Adjust consistency with more milk or powdered sugar as needed.
Frost and finish: Spread frosting over the cooled cake with an offset spatula. Add sprinkles or chocolate shavings if you like. Let it set 10–15 minutes before slicing.