Preheat oven to 325°F (165°C). Line muffin tins with cupcake liners.
In a stand mixer fitted with the paddle attachment, mix together 1 ½ cups all-purpose flour, 1 ½ cups granulated sugar, ¾ cup unsweetened cocoa powder, 1 ½ teaspoons baking soda, ¾ teaspoon baking powder, and ¾ teaspoon salt on low speed until combined.
Add 2 large eggs, ¾ cup buttermilk, ¾ cup warm water, ¼ cup vegetable oil, and 1 teaspoon vanilla extract. Beat on medium speed until smooth, about 1–2 minutes. Scrape down the sides and bottom of the bowl as needed.
Fill each cupcake liner about ⅔ full.
Bake for 20–22 minutes, until a toothpick inserted into the center comes out clean. Remove from tins and cool completely before frosting.
To make the frosting, in a large bowl, beat 1½ cups butter (softened) with a hand mixer until light and fluffy. Add ¾ cup unsweetened cocoa powder and 1 teaspoon vanilla extract. Beat until combined.
Gradually add 3-4 cups powdered sugar, 1 cup at a time, beating well between additions until smooth and fluffy.
Transfer frosting to a piping bag and pipe onto completely cooled cupcakes.
