Prep your pan and oven. Heat the oven to 350°F (175°C). Grease a 9x13-inch baking pan and line the bottom with parchment if you have it. This helps the delicate cake release cleanly.
Mix dry ingredients. In a small bowl, whisk the flour, baking powder, and salt.
Set aside so it’s ready to go when you need it.
Whip egg whites. In a clean bowl, beat the egg whites until soft peaks form. Slowly add half the sugar (about 6 tablespoons), and beat until glossy, medium-stiff peaks form. This gives the cake its signature lift.
Beat egg yolks. In a separate bowl, whisk the egg yolks with the remaining sugar until pale and thick, 1–2 minutes.
Mix in the vanilla, whole milk, and oil (if using).
Combine gently. Add the dry ingredients to the yolk mixture and stir just until smooth. Fold in one-third of the whipped whites to loosen, then gently fold in the rest. Don’t overmix—keep as much air as possible.
Bake. Spread the batter evenly in the pan and bake for 22–28 minutes, or until the top springs back and a toothpick comes out clean.
The cake should be lightly golden.
Cool and poke. Let the cake cool in the pan for 15 minutes. Using a skewer or fork, poke holes all over the surface. This helps it drink up the milk mixture evenly.
Make the tres leches soak. Whisk the evaporated milk, sweetened condensed milk, heavy cream, vanilla, and cinnamon (if using).
Taste for sweetness and spice.
Soak the cake. Slowly pour the milk mixture over the cake, pausing to let it absorb. It may look like a lot, but the cake will take it in. Cover and chill at least 4 hours, overnight is best.
Whip the topping. Beat heavy cream, powdered sugar, and vanilla to soft, billowy peaks.
Spread it over the chilled cake in an even layer.
Garnish and serve. Add berries, a dusting of cinnamon, or toasted coconut. Slice into squares and serve cold or slightly cool.