Preheat the oven to 350°F. Spray a 9x13 baking pan with nonstick cooking spray and set aside.
Whisk together the flour, cocoa powder, sugar, baking soda, baking powder and salt in the bowl of a stand mixer.
Add the milk, eggs, vanilla, and oil into the bowl with the dry ingredients.
Beat together with a hand mixer or whisk. Gradually add in the boiling water while mixing to help break apart the batter.
Pour the batter into the prepared baking pan.
Bake for 35 minutes or until a toothpick inserted into the cakes comes out with just a few crumbs.
Cool cake completely.
Meanwhile, prepare the frosting.
In the bowl of a standing mixer or with a hand mixer, slowly begin to beat together the softened butter, vanilla, and cocoa powder.
Rotate between adding the powdered sugar and heavy cream until both are fully incorporated, and the frosting is fluffy and smooth.
Spread the frosting over the cooled cake.
Cut and serve.