Preheat your oven to 350°F (175°C) and grease your cake pans thoroughly. Line with parchment paper for easy removal.
In a medium bowl, whisk together flour, cornstarch, baking powder, baking soda, and salt. This helps evenly distribute the leavening agents.
In a large bowl, beat butter, oil, and sugar together until light, fluffy, and pale in color, about 3–4 minutes. This step creates the foundation for a soft cake.
Add eggs one at a time, mixing well after each addition to ensure a smooth batter.
Mix in vanilla extract until evenly incorporated.
Add the dry ingredients in three parts, alternating with buttermilk in two parts. Begin and end with dry ingredients to maintain a stable batter consistency.
Mix gently after each addition until just combined. Avoid overmixing to keep the cake tender.
Divide the batter evenly into two bowls.
In one portion, mix cocoa powder and milk until smooth to create the chocolate batter.
Leave the other portion as the vanilla batter.
Spoon alternating dollops of vanilla and chocolate batter into the prepared pans.
Continue layering until all batter is used, creating a checkerboard-like pattern.
Using a knife or skewer, gently swirl the batter in both directions to create a marbled effect. Avoid overmixing or the pattern will disappear.
Tap the pans lightly on the counter to remove air bubbles.
Bake for 30–35 minutes or until a toothpick inserted into the center comes out clean.
Remove from the oven and let cakes cool in the pans for 10–15 minutes.
Transfer to a cooling rack and allow to cool completely before frosting.
For frosting, beat butter until creamy and smooth.
Add powdered sugar and cocoa powder gradually, mixing on low speed.
Add milk and vanilla extract, then beat on medium-high speed until fluffy and spreadable.
Level the cake layers if needed for even stacking.
Place the first layer on a cake stand and spread an even layer of frosting.
Add the second layer and frost the top and sides evenly.
Use a spatula to create swirls on top for a decorative finish.
Chill slightly before slicing for clean layers.