Preheat oven to 350°F and grease a 9×13-inch pan with butter or nonstick spray.
In a large bowl, whisk together the flour, sugar, baking soda, and salt. Set aside.
In a large saucepan, heat the butter and water until it comes to a boil. Remove from heat and whisk in peanut butter and oil until smooth.
Let cool 2 minutes, then whisk in eggs, milk, and vanilla until well incorporated.
Add to dry ingredients and mix until smooth. Pour batter into prepared pan and bake until a toothpick inserted into the center comes out clean, 40-45 minutes.
Set pan on a wire rack to cool while you make the frosting:
To a medium saucepan, add the butter, peanut butter, and milk and bring to a rolling boil.
Remove from heat and stir in vanilla, followed by powdered sugar, 1 cup at a time.
Whisk until smooth, reheating a bit if needed, then pour over cake. If frosting is stiff, add a bit more milk.
Working quickly, spread frosting evenly over cake and top with peanuts. Slice, serve, and enjoy!