Preheat oven to 350°F (175°C). Grease and flour a 9x13 inch baking pan.
In a large bowl, whisk together the flour, sugar, baking soda, and salt.
In a separate bowl, cream together the softened butter and peanut butter until smooth.
Beat in the eggs one at a time, then stir in the vanilla extract.
Gradually add the dry ingredients to the wet ingredients, alternating with the buttermilk, beginning and ending with the dry ingredients. Mix until just combined.
Pour the batter into the prepared baking pan and spread evenly.
Bake for 30-35 minutes, or until a toothpick inserted into the center comes out clean.
Let the cake cool in the pan for 10 minutes before inverting it onto a wire rack to cool completely.
Make the Frosting
In a medium bowl, beat together the softened butter and peanut butter until smooth and creamy.
Gradually add the powdered sugar, alternating with the milk, until the frosting reaches your desired consistency. Beat in the vanilla extract.
Assemble
Once the cake is completely cooled, spread the peanut butter frosting evenly over the top.
Slice and serve.
Notes
Store any leftover cake in an airtight container at room temperature for up to 3 days.