Silky Chocolate Milk with Stovetop Chocolate Concentrate
Make silky, café-quality chocolate milk at home with a small stovetop concentrate. Mix with cold milk for a quick drink or warm for an indulgent hot chocolate.
On this page
Start with a glossy, slightly thick chocolate concentrate made on the stove—no mystery syrups, just cocoa, a little sugar and dark chocolate. Stir a spoonful into cold whole milk for an instant upgrade, or whisk into warmed milk for a drink that feels indulgent but simple.
This method gives consistent texture and deep chocolate flavor whether you serve it iced, hot, or frothed. Keep a jar in the fridge for quick evening treats or an easy crowd pour.
Why this recipe works
Combining cocoa powder and a small amount of chopped dark chocolate builds both bright cocoa notes and rounded, silky body. Simmering the cocoa with water and sugar concentrates the flavor so a little goes a long way in milk.
Because the concentrate is made ahead, finishing a drink takes 30 seconds: pour, stir, sip. For technique notes and other pantry-forward ideas, see our Recipes collection and Food Stories.
Ingredient notes
- Use Dutch-process or natural unsweetened cocoa—both work; Dutch-process gives a rounder, less acidic finish.
- A bit of chopped dark chocolate (60–70% cacao) melts into the concentrate and adds depth you can taste in cold milk.
- Whole milk makes the creamiest drink; swap part milk for cream for richer serves or use your preferred plant milk for a dairy-free option.
How to make it
The full ingredient list and step-by-step method are in the recipe card below. In short: whisk dry cocoa and sugar, add water, simmer until glossy and slightly thickened, stir in chopped chocolate and vanilla, cool and refrigerate. When serving, measure the concentrate into cold or heated milk to taste.
Pro tip: For iced chocolate milk, shake concentrate and cold milk with ice in a jar for froth and chill without watering down the drink.
Serving and storage tips
- Cold: 2–3 tablespoons concentrate per 8 fl oz (240 ml) whole milk, stir or froth.
- Hot: whisk 3 tablespoons concentrate into gently warmed milk until smooth.
- Scale: the concentrate keeps in a sealed jar in the fridge up to 2 weeks—shake before using.
Want variations or a quick spin for weeknight kids’ requests? Read more in our About page and check other drink ideas in Recipes.
Keep reading across the journal: Recipes, Why Onions Need More Time Than Most Recipes Admit, What Tomato Paste Actually Does in a Pan.
Ingredients
- 3/4 cup (75 g) unsweetened cocoa powder (Dutch-process or natural)
- 3/4 cup (150 g) granulated sugar
- 1/4 teaspoon fine salt
- 1 cup (240 ml) water
- 2 ounces (55 g) dark chocolate, 60–70% cacao, finely chopped
- 1 teaspoon vanilla extract
- 4 to 6 cups (1–1.5 L) whole milk for serving (or preferred milk)
- Optional: 2 tablespoons heavy cream (for extra richness) or a pinch of cinnamon
Method
- Combine cocoa, sugar, and salt in a small saucepan and whisk until evenly mixed.
- Gradually whisk in the water until a smooth paste forms and there are no lumps.
- Place the pan over medium heat and bring to a gentle simmer, whisking constantly. Cook until the mixture is glossy and slightly thickened, about 3–4 minutes.
- Remove from heat and immediately stir in the chopped dark chocolate until fully melted and incorporated.
- Stir in the vanilla extract. Let the concentrate cool to room temperature, then transfer to a clean jar and refrigerate. Chill at least 1 hour before using—it will thicken slightly as it cools.
- To serve cold: fill an 8 fl oz (240 ml) glass with cold whole milk and ice, add 2 to 3 tablespoons concentrate (3 tbsp for richer), stir or froth until evenly mixed.
- To serve hot: gently warm 8 fl oz (240 ml) milk in a small pan or microwave, then whisk in 3 tablespoons concentrate until smooth and steaming but not boiling.
- Storage: keep concentrate in a sealed jar in the refrigerator up to 2 weeks. Shake or stir before each use. Reheat a small spoonful in the microwave if the concentrate becomes too stiff to pour.
Next in the journal
Jump to the next read without returning to the archive.