In a small bowl combine the flour, cocoa powder, baking powder, baking soda and salt.
In a large bowl, cream the butter and peanut butter together, then add the white and brown sugar. Add the eggs one at a time and blend.
Add the milk and vanilla, then cream together.
Add the dry mixture to the wet mixture and stir to combine.
Pour the cupcake batter in two lined cupcake pans to make 24 cupcakes. Fill each cupcake liner 3/4 full.
Place into the oven for 20-25 minutes. Remove from the oven when a toothpick inserted in the middle of a cupcake comes out clean.
While the cupcakes are baking, prepare the peanut butter filling by creaming all of the ingredients together in a medium bowl.
After the cupcakes come out of the oven, allow them to cool 10-15 minutes then cut a hole in the center of each cupcake.
Use a piping bag or plastic bag with a small cut in the corner to pipe the peanut butter filling into the cupcakes.
Prepare the frosting by whipping all of the ingredients together.
Place in a pastry bag and pipe onto the cupcakes.
Store the leftover middle pieces of the cupcakes in the refrigerator or freezer. They're delicious crumbled over ice cream!
If using a ziplock bag instead of a piping bag to fill or frost the cupcakes, be sure not to use the "stand and fill" bags, as they are pleated at the bottom and therefore you cannot cut a hole in the corner for piping.
These cupcakes can be left at room temperature for 2-3 days, after which they should be refrigerated.
These cupcakes can be made with traditional wheat flour if you're not gluten free.