Preheat the oven to 350 degrees F and spray a 13x9 inch baking dish.
In a medium sized bowl, add the flour, baking powder, baking soda and salt. Whisk well and set aside.
In a large measuring cup, add the buttermilk and vanilla extract, whisk and set aside.
In a large mixing bowl, add the butter, oil and sugars. Mix on high for several minutes until light and fluffy.
Add each egg, one at a time, mixing on medium speed for about 20 seconds after adding each egg.
Add half the dry mixture to the butter mixture and mix on medium only until just combined.
Add the liquid ingredients and mix on medium only until just combined.
Add the last half of the dry mixture and mix on medium until just combined.
Scrape down the sides and the bottom of the bowl and mix again but only for about 15 more seconds. Do not mix scratch cake batter very long or the cake will come out rubbery and dense. Only mix until it’s well combined. The batter will be thick and fluffy.
Add half the batter to the prepared pan and smooth it out.
Sprinkle half of the crumb mixture over the cake batter.
Add the last half of the batter over the crumbly mixture you just added and smooth.
Sprinkle the last half of the crumb mixture over the top.
Bake at 350 degrees F for about 50 minutes. Ovens vary. If the top starts to brown a bit too much, just set a piece of foil over the top.
The cake is baked when a toothpick inserted into the middle comes out either clean or with a few moist crumbs on it.
Set the baked cake on a cooling rack and let it cool for about an hour. This cake is great served slightly warm or at room temperature.