In a saucepan, combine evaporated milk and sugar. Heat over medium-low heat, stirring constantly until sugar dissolves.
Increase heat to medium and bring to a simmer. Cook for 15-20 minutes, stirring occasionally, until mixture thickens and reduces by about half. Remove from heat and let cool completely.
In a mixing bowl, beat softened butter until creamy. Gradually add the cooled evaporated milk mixture, beating continuously until frosting is smooth and fluffy.
Stir in vanilla extract until well combined.
Use immediately to frost cakes or store in the refrigerator until ready to use. Allow chilled frosting to come to room temperature before spreading.