Preheat oven to 325 degrees. Line a muffin tin with cupcake liners. Recipe makes 24 cupcakes so you may have to cook it in batches unless you have two muffin tins.
Mix together flour, sugar, cocoa, baking soda, baking powder, and salt in a stand mixer using a low speed until combined.
Add eggs, buttermilk, warm water, oil, and vanilla. Beat on a medium speed until smooth. This should take just a couple of minutes. Scrape the sides and bottom of the mixing bowl to make sure everything got mixed in.
Fill each cupcake 2/3 full.
Bake for 20-22 minutes until the cupcakes meet the toothpick test (stick a toothpick in and it comes out clean). Remove from tins and cool completely.
Make the frosting by In a large bowl, beat butter until fluffy using a hand mixer. Add in cocoa powder and vanilla extract. Beat until combined. Beat in powdered sugar, 1 cup at a time, beating in between.
Transfer frosting to a piping bag and pipe onto completely cooled cupcakes.