Preheat your oven to 350°F (175°C) and grease and flour two 9-inch round cake pans.
In a large mixing bowl, combine flour, sugar, cocoa powder, baking powder, baking soda, and salt. Whisk until well mixed.
Add eggs, milk, oil, and vanilla to the dry ingredients. Beat on medium speed for 2 minutes until smooth.
Stir in boiling water carefully. The batter will be thin.
Pour the batter evenly into the prepared cake pans and bake for 30-35 minutes. Check for doneness with a toothpick.
Allow the cakes to cool in the pans for 10 minutes, then transfer to wire racks to cool completely.
For the frosting, beat softened butter until creamy. Gradually add cocoa powder and powdered sugar, alternating with milk, until smooth. Stir in vanilla.
Once the cakes are completely cool, place one layer on a serving plate, spread frosting on top, and place the second layer on top. Frost the top and sides of the cake.
Garnish with chocolate shavings or sprinkles if desired, and serve.
