In a large bowl, mix together the sugar, butter, vanilla, and cocoa powder. Beat in the eggs one at a time.
With the mixer on low speed, add in the flour and salt. Mix until fully combined, scraping the sides down as needed.
Preheat the oven to 350°F and grease an 18×13-inch sheet pan. Pour the batter into the pan and bake for 20-25 minutes. Let the brownies cool completely before frosting.
Make The Frosting
In a medium bowl, mix together the powdered sugar, softened butter, and cocoa powder. The mixture may be dry, but it will come together once the liquid is added.
Add the evaporated milk and vanilla extract. Beat until the frosting is smooth.
Frost & Serve
Once the brownies are completely cooled, add a thick, even layer of frosting on top. Slice into squares and serve.
Notes
Let the butter and eggs come to room temperature beforehand for a smooth and even batter. Here are some quick ways to soften butter if you're in a hurry!
You can substitute all-purpose flour with finely ground whole wheat flour.
Check for doneness with a toothpick—if it comes out clean or with a few moist crumbs, the brownies are done. Start checking around 20 minutes to avoid overbaking.
If your powdered sugar is lumpy, sift it first to avoid lumps in the frosting.
Let the brownies cool completely before frosting. Otherwise, the frosting will melt.