Preheat your oven to 350°F (175°C) and grease an 8x8 inch baking pan or line it with parchment paper for easy removal.
In a medium saucepan, melt 1/2 cup of unsalted butter over low heat. Remove from the heat and stir in the granulated sugar, mixing until well combined.
Add the eggs one at a time, mixing thoroughly after each addition. Then stir in the vanilla extract.
Sift together the cocoa powder, flour, salt, and baking powder in a separate bowl. Gradually add the dry ingredients to the wet mixture, stirring until just combined. Be careful not to overmix.
Pour the brownie batter into the prepared pan, spreading it evenly. Bake for 20 to 25 minutes, or until a toothpick inserted in the center comes out with a few moist crumbs.
While the brownies are baking, prepare the chocolate frosting. In a small saucepan, melt 1/4 cup of butter over low heat. Stir in the cocoa powder and milk until smooth and well combined. Remove from heat.
Gradually whisk in the powdered sugar and vanilla extract until the frosting is creamy and smooth. If it’s too thick, you can add a little more milk to reach your desired consistency.
Once the brownies are done baking, remove them from the oven and let them cool in the pan for about 10 minutes. Then, transfer them to a wire rack to cool completely before frosting.
Spread the chocolate frosting generously over the cooled brownies. Allow the frosting to set slightly before cutting the brownies into squares.