Sift the flour and cocoa powder. Add along with the milk to a saucepan and whisk to remove lumps. Place over heat and bring to a gentle boil while stirring continuously. Once boiling, reduce the heat.
After about 5 minutes (depending on stove and pan), the mixture will be thick enough. You can check by inserting a wooden skewer - it should stand upright. Transfer to a bowl, cover with plastic wrap, and let cool to room temperature. This mixture must be smooth. If there are lumps already, press the mixture through a sieve.
Once cooled, beat the butter and powdered sugar in another bowl until light and fluffy. Add the vanilla and beat until combined.
Meanwhile, melt two-thirds of the chocolate over a double boiler. Once melted, remove from heat and add the remaining chocolate. Stir regularly until all is melted. Let the chocolate cool. You can test by touching a bit to your lip, it should feel cool.
Once both the chocolate and flour mixture are at room temperature, continue. Add the flour mixture to the butter mixture and beat for about 5 minutes until creamy. Then add the cooled melted chocolate in portions, mixing well between additions.
Your buttercream is now ready to use - time to make delicious cakes and cupcakes!
How to store
Buttercream can be made ahead and stored in the fridge for up to a week and you can freeze it for up to three months. Make sure to let it come to room temperature before using.