Combine milk and sugar In a large, heavy-bottom saucepan, combine the milk and sugar. Stir over medium heat until the sugar is completely dissolved.
Simmer slowly Reduce the heat to low and allow the mixture to simmer gently, uncovered. Stir frequently to prevent burning or sticking. You want the liquid to reduce slowly — this will take about 45 minutes to 1 hour.
Add butter Once the mixture has thickened and reduced by about half (you’ll have ~6 cups of condensed milk), stir in the butter until fully melted and incorporated.
Optional vanilla Remove from heat and stir in the vanilla extract if using.
Cool and store Let it cool slightly before transferring to jars or airtight containers. Store in the refrigerator for up to 2 weeks, or freeze for up to 3 months.
Notes:
Consistency check: The final product should be thick, smooth, and slightly golden in color. It thickens more as it cools.
Non-dairy option: Replace milk with full-fat canned coconut milk and use a plant-based butter to make a vegan version.
Don’t boil: Keep the heat low and avoid boiling to prevent curdling.