Step 1: Prep & Mix
Grease an 8-inch square baking pan with butter or line it with parchment paper. In a medium, heavy-bottomed saucepan, whisk together sugar and cocoa powder. Gradually add the milk, stirring until smooth and fully combined.
Step 2: Boil the Mixture
Heat over medium-high, stirring constantly until the mixture comes to a full, rolling boil. Reduce heat to low and stop stirring once it reaches a boil.
Step 3: Reach the Soft Ball Stage
Attach a candy thermometer to the pan and let the mixture simmer undisturbed until it reaches 238°F.
No thermometer? Drop a small spoonful of syrup into ice-cold water. If it forms a soft ball that flattens when placed on a plate, it’s ready.
Step 4: Cool Without Stirring
Remove from heat immediately and let sit undisturbed for 50–70 minutes, until the temperature drops to about 110°F. Patience here ensures smooth, non-grainy fudge.
Step 5: Beat the Fudge
Stir in the softened butter and vanilla. Using a sturdy wooden spoon, beat vigorously. The mixture will start glossy, then thicken and become matte as it reaches the perfect fudge texture.
Step 6: Set & Slice
Pour the fudge into the prepared pan and spread evenly with a spatula. Let it cool completely at room temperature (or refrigerate for quicker setting) before cutting into 1-inch squares.