Preheat oven to 350.
Grease a 9x13 baking dish with butter. Dust with flour to prevent sticking.
Whisk together flour, sugar, and baking soda in a large bowl.
Add milk, eggs, and vanilla to bowl.
Beat mixture at low speed until blended.
Add water butter and peanut butter to a saucepan.
Heat over medium heat stirring frequently until blended (about 5 minutes).
Add peanut butter mixture into flour mixture.
Stir until batter is well mixed and pour into prepared dish.
Bake about 35-40 minutes until a toothpick inserted in the center of the cake comes out clean.
Allow to cool.
Cream together the butter and peanut butter.
Slowly add in the sugar, if it gets too thick then add a little milk to thin.
Continue until all of the sugar is in and the frosting is blended to the right consistency.
Spread frosting over cooled cake.