Preheat oven to 350° F. Grease or paper-line a muffin pan with 12 cups.
Combine flour, cocoa, baking powder, baking soda, and salt in a medium bowl and stir to mix. Set aside.
Combine sugar, eggs, milk, oil, and vanilla in large bowl. Whisk until well mixed.
Add the flour mixture to the egg mixture in two or three additions, mixing with a wooden spoon or a spatula between additions, scraping down the sides of the bowl as needed. Fold in chocolate chips.
Fill the prepared muffin cups about halfway and bake until they spring back when lightly pressed with a finger, about 15 to 20 minutes. Let cool in pan for 5 minutes before removing to a rack. Cool completely before frosting.
For the frosting, combine butter, 3 cups powdered sugar, 3 tablespoons milk, vanilla, and salt in a large bowl. Using a wooden spoon or the paddle of an electric mixer, beat ingredients together until light and fluffy, adding more powdered sugar or milk as needed to achieve a smooth, creamy consistency that will hold up on your cupcakes. Pipe frosting on cooled cupcakes or spread it on generously with a thin, flexible spatula.