Cinnamon and Cream

Silky Dark Chocolate Pudding from Scratch

19 min read

↓ Jump to Recipe

There is something almost meditative about standing at the stove, whisking a pot of chocolate pudding as it slowly thickens into a glossy, molten ribbon. The scent alone, that warm, bittersweet perfume of dark chocolate blooming in hot milk, is enough to draw everyone into the kitchen. This is the pudding your grandmother might have made if she had a bar of 70% dark chocolate on hand: old-fashioned in spirit, deeply satisfying, and impossibly silky against a spoon.

What sets this version apart is the combination of two chocolate sources. We use both Dutch-process cocoa powder and finely chopped dark chocolate, stirred in off the heat at the very end. The cocoa builds a deep, roasted foundation of flavor, while the melted chocolate adds body, richness, and that glossy sheen you see in a great patisserie. A small knob of butter, also added at the finish, gives it a soft, velvety mouthfeel that no box of instant pudding can replicate. This is the double-chocolate method, and once you understand it, you will use it every time.

This recipe sits comfortably at an easy-to-medium difficulty level. If you can whisk and keep an eye on a saucepan, you can absolutely nail this. It is a perfect weekend project for beginner bakers looking to build confidence with custard-style desserts, and a quick weeknight treat for experienced home cooks who know that the best things are often the simplest. Serve it warm for something comforting and loose, or chilled for a firmer, more elegant spoonable pudding.

Prep: 10 minutesTotal: 2 hours 30 minutes (includes 2 hours chill time)Yield: six 150ml (about 5 oz) individual ramekins or dessert cupsDifficulty: ★☆☆ EasyOccasion: Everyday Treat
✓ Vegetarian✓ Nut-Free✓ Soy-Free
Servings:

6

servings

Ingredients

  • Serving (optional)
  • 600 mlwhole milk (about 2.5 cups), divided
  • 120 mlheavy cream (about 1/2 cup)
  • 150 ggranulated sugar (about 3/4 cup)
  • 40 gDutch-process cocoa powder, sifted (about 1/3 cup + 1 tbsp)
  • 35 gcornstarch (about 4 tbsp)
  • 1/4 tsp fine sea salt
  • 3 largeegg yolks
  • 120 gdark chocolate (70% cacao), finely chopped (about 4 oz)
  • 30 gunsalted butter, cut into small cubes (about 2 tbsp)
  • 1 tsppure vanilla extract
  • Lightly sweetened whipped cream
  • Garnish (optional)
  • Flaky sea salt or chocolate shavings

Ingredient Substitutions

whole milk

  • 2% milk works but produces a slightly less rich pudding. Avoid skim milk, which can make the pudding thin and watery.
  • Full-fat oat milk or full-fat coconut milk (from a can, stirred smooth) for a dairy-free version. Coconut milk will add a subtle coconut flavor that pairs beautifully with dark chocolate.
heavy cream

  • An equal amount of whole milk can replace the cream for a lighter result. The pudding will still set but will be less rich.
  • Full-fat coconut cream for a dairy-free swap with a lush, tropical undertone.
Dutch-process cocoa powder

  • Natural (non-Dutch) cocoa powder can be used, but the flavor will be slightly more acidic and less deeply chocolatey. Increase sugar by 1 tbsp to compensate.
  • Black cocoa powder (used at half the quantity, 20g, combined with 20g Dutch-process) for an intensely dark, Oreo-like depth of flavor.
dark chocolate (70% cacao)

  • Bittersweet chocolate chips work well in a pinch. Look for a brand with at least 60% cacao content.
  • Semi-sweet chocolate (around 55%) can be used if you prefer a slightly sweeter pudding. Reduce the granulated sugar by 2 tbsp.
egg yolks

  • For an egg-free version, increase the cornstarch to 50g (about 5.5 tbsp). The pudding will still set but will have a slightly less custardy, more gel-like texture.
cornstarch

  • Arrowroot powder in an equal amount works well and produces a glossier pudding. Note that arrowroot can become slightly slimy if overcooked, so remove from heat as soon as it thickens.
  • All-purpose flour at 50g (about 6 tbsp) can substitute, but the pudding will taste slightly starchy unless it cooks for an extra minute after thickening.

Instructions

🔧 Equipment

🥣medium heavy-bottomed saucepan (2-quart)
📡large microwave-safe bowl (for microwave method)
🐢4-quart or larger slow cooker (for slow cooker method)
🔵fine-mesh sieve or strainer
🌀balloon whisk
🍴silicone spatula
🥛six 150ml (5 oz) ramekins or dessert cups
🧁large measuring cup or pitcher (for pouring strained pudding)
🥛kitchen scale or dry measuring cups and spoons
🧁plastic wrap
🌀immersion blender (optional, for slow cooker method)



Prep: 10 minutes
Bake: 10 to 12 minutes active cooking
Total: 2 hours 30 minutes (includes chilling)
  1. Set out six 150ml ramekins or dessert cups on a tray. In a medium bowl, whisk together the egg yolks with 120ml (1/2 cup) of the cold milk and all of the cornstarch until completely smooth and lump-free. Set aside. This slurry is your insurance policy against lumps.
  2. In a medium, heavy-bottomed saucepan, combine the remaining 480ml (2 cups) milk, the heavy cream, granulated sugar, sifted Dutch-process cocoa, and fine sea salt. Whisk to combine. Place over medium heat and cook, stirring frequently, until the mixture is hot and just beginning to steam, about 4 to 5 minutes. Do not let it boil at this stage.
  3. While whisking constantly, slowly pour about 120ml (1/2 cup) of the hot chocolate mixture into the egg yolk slurry. This is called tempering: it gently raises the temperature of the eggs so they do not scramble when added to the pan. Pour this warmed slurry back into the saucepan in a thin, steady stream, whisking the entire time.
  4. Increase heat to medium and cook, whisking constantly and scraping the bottom and corners of the pan, until the pudding comes to a gentle boil and thickens noticeably, about 3 to 5 minutes. Once it boils, continue to cook and whisk for exactly 1 full minute. This step cooks out the starchy taste of the cornstarch.
  5. Remove the pan from heat immediately. Add the finely chopped dark chocolate, butter cubes, and vanilla extract. Let stand for 30 seconds, then whisk gently until everything is completely melted and the pudding is glossy and smooth.
  6. Pour the pudding through a fine-mesh strainer set over a large measuring cup or bowl to catch any stray lumps or egg bits. Divide evenly among the prepared cups. Press a piece of plastic wrap directly onto the surface of each pudding (this prevents a skin from forming). Refrigerate for at least 2 hours, or until fully set and cold. Serve with a dollop of whipped cream and a pinch of flaky sea salt or chocolate shavings.
Prep: 10 minutes
Bake: 8 to 10 minutes total microwave time
Total: 2 hours 20 minutes (includes chilling)
This method is surprisingly effective and great for small batches or when you want to minimize cleanup. The key is frequent stirring intervals to prevent hot spots from cooking the eggs unevenly.
  1. In a large microwave-safe bowl (at least 1.5-litre capacity, as the pudding will bubble up), whisk together all of the milk, heavy cream, granulated sugar, sifted cocoa powder, cornstarch, egg yolks, and salt until completely smooth. Take your time here since there is no separate tempering step, so everything must be fully combined before any heat is applied.
  2. Microwave on HIGH for 2 minutes. Remove and whisk vigorously, scraping the sides and bottom of the bowl. The mixture will not look thickened yet, and that is expected.
  3. Continue microwaving in 90-second intervals, whisking thoroughly after each interval. After the third interval (about 6.5 minutes total), the pudding should be steaming and beginning to thicken around the edges. Start checking every 60 seconds. You are looking for a pudding that coats a spoon thickly and shows large, slow bubbles when it first starts to boil.
  4. Once the pudding has reached a full boil and is visibly thick, microwave for one final 60-second burst to ensure the cornstarch is fully cooked. Remove and whisk well. The total time is usually 8 to 10 minutes depending on your microwave wattage.
  5. Immediately add the chopped dark chocolate, butter, and vanilla. Let sit for 30 seconds, then whisk until completely smooth and glossy. Strain through a fine-mesh sieve, divide among six serving cups, press plastic wrap to the surface, and refrigerate for at least 2 hours before serving.
Prep: 10 minutes
Bake: 2 to 2.5 hours on High
Total: 4.5 to 5 hours (includes chilling)
This method works best when you want to make a large batch for a party or gathering, or when your stovetop is occupied. The texture is equally silky but requires a final vigorous whisk and strain to reach its full potential. Do not use the Low setting as it may not get hot enough to fully activate the cornstarch and cook the eggs safely.
  1. In the insert of a 4-quart or larger slow cooker, whisk together all of the milk, heavy cream, granulated sugar, sifted cocoa powder, cornstarch, egg yolks, and salt until completely smooth. A flat silicone spatula is helpful for scraping the curved bottom edges of the insert.
  2. Place the lid on and cook on HIGH for 1 hour without opening the lid. Resist the urge to check early. The gentle, even heat is building gradually.
  3. After 1 hour, remove the lid and whisk the pudding thoroughly, scraping the sides and bottom. It will likely look lumpy or curdled at this point. Do not panic. Replace the lid and cook on HIGH for another 45 minutes to 1 hour, until the pudding is steaming, visibly thickened, and bubbling around the edges.
  4. Remove the lid and whisk energetically for about 1 to 2 minutes. The mixture should become smooth and glossy as you work out any lumps. If it still looks uneven, use an immersion blender for 20 seconds, then strain through a fine-mesh sieve.
  5. Switch the slow cooker off. Add the chopped dark chocolate, butter cubes, and vanilla extract. Stir gently, let sit for 1 minute, then whisk until the chocolate and butter are fully melted and incorporated. The pudding should be deeply glossy.
  6. Ladle through a fine-mesh strainer into serving cups or a large serving bowl. Press plastic wrap directly onto the surface to prevent a skin. Refrigerate for at least 2 hours until fully chilled and set before serving.

Nutrition Per Serving

Per 1 serving (makes six 150ml (about 5 oz) individual ramekins or dessert cups)

385Calories
44gCarbs
34gSugar
20gFat
7gProtein

Why This Recipe Works

The silky texture of this pudding relies on two thickening agents working in harmony: cornstarch and egg yolks. Cornstarch granules absorb liquid and swell when heated, forming a network that gives the pudding its spoonable body. The egg yolks contribute emulsified fat and proteins that, when gently cooked, add richness and a custard-like creaminess that cornstarch alone cannot achieve. This is why the tempering step matters so much: pouring hot liquid slowly into the yolks raises their temperature gradually, avoiding the scrambled-egg disaster that happens when cold yolks hit a screaming-hot pan. The brief 1-minute boil after thickening is equally important. Cornstarch contains an enzyme called alpha-amylase, which can break down its own starch network over time, especially in the presence of egg yolks. Bringing the pudding to a full boil for at least 60 seconds deactivates this enzyme and ensures your pudding stays thick even after hours in the refrigerator.

The dual-chocolate approach is the flavor secret here. Dutch-process cocoa has been treated with an alkalizing agent that neutralizes its natural acidity, resulting in a darker color and a smoother, more mellow chocolate flavor with roasty, almost fudgy undertones. It builds the backbone of the pudding’s taste. The finishing addition of finely chopped dark chocolate, stirred in off the heat, adds a second layer of complexity: the cocoa butter in the bar chocolate coats the tongue differently than cocoa powder, creating that unmistakable richness you feel rather than just taste. The cold butter, added at the same moment, is a classic French patisserie technique called monter au beurre. It emulsifies into the hot pudding and creates an extraordinarily smooth, glossy texture that simply cannot be achieved any other way.

If your pudding turns out lumpy, strain it through a fine-mesh sieve while it is still warm and whisk the strained pudding vigorously. Almost all lumps can be rescued this way. If the pudding is too thin after chilling, it likely did not reach a full boil or was not cooked long enough after thickening. Unfortunately a too-thin pudding is difficult to fix once chilled, but you can reheat it gently on the stovetop, dissolve an additional teaspoon of cornstarch in a tablespoon of cold milk, whisk it in, and bring back to a boil.

Baker’s Tips

  • Chop the dark chocolate very finely before you start cooking. Smaller pieces melt faster and more evenly when stirred into the hot pudding off the heat, reducing the risk of unmelted chunks.
  • Use a heavy-bottomed saucepan. Thin pans create hot spots that can scorch the cocoa or cook the eggs unevenly. A 2-quart stainless steel or enameled saucepan is ideal.
  • Whisk constantly once the tempering is done and the slurry is back in the pan. Walk away for even 30 seconds and you risk scorched spots or lumps forming on the bottom.
  • Strain the finished pudding every single time, even if it looks smooth. The strainer catches any microscopic egg protein strands and cocoa lumps and makes the difference between a good pudding and a great one.
  • Press plastic wrap directly to the surface of the pudding while it is still warm. This prevents the notorious pudding skin, which forms when the surface proteins and starch dry out as moisture evaporates.
  • If you prefer a warm pudding, skip the refrigeration and serve immediately in the cups. It will have the texture of a loose, molten chocolate sauce but with a deeply intense flavor.

Variations

  • Mexican Chocolate Pudding: Add 1/2 tsp ground cinnamon and a pinch of cayenne pepper to the milk mixture along with the cocoa. The warm spice builds slowly and makes this version feel festive.
  • Mocha Pudding: Dissolve 2 tsp of instant espresso powder into the milk before heating. Coffee amplifies the chocolate flavor without making the pudding taste like coffee.
  • Dark Chocolate Orange Pudding: Add 1 tbsp of finely grated orange zest to the milk at the start of cooking and stir in 1 tsp of orange extract along with the vanilla at the end.
  • Salted Caramel Swirl: After pouring pudding into cups, drizzle a teaspoon of thick salted caramel sauce over each and use a toothpick to swirl it gently into the surface before pressing on the plastic wrap.
  • Vegan Version: Use full-fat oat milk and coconut cream in place of dairy milk and heavy cream, increase cornstarch to 50g, omit egg yolks entirely, and use vegan butter. The result is slightly less custardy but still deeply chocolatey and satisfying.

Troubleshooting & FAQ

My pudding is lumpy even after whisking. Can I fix it?
Yes, almost always. While the pudding is still warm, pour it through a fine-mesh sieve, pressing it through with a silicone spatula. Then whisk the strained pudding vigorously for about 30 seconds. Lumps almost always come from egg proteins that cooked too quickly (usually from insufficient tempering or too-high heat). Straining rescues the texture completely in most cases.
My pudding did not set firm after chilling for 2 hours. What happened?
The most common reason is that the pudding did not reach a full, rolling boil, or was not cooked for the full 1 minute after it thickened. The cornstarch needs to fully gelatinize to hold the pudding firm. Another culprit is inaccurate measurement of cornstarch. Always spoon-and-level it into your measuring spoon rather than scooping directly from the container. If your pudding is too thin after chilling, reheat it gently, whisk 1 tsp of cornstarch into 1 tbsp cold milk, stir it in, and bring back to a boil.
The pudding tastes a bit starchy or floury. How do I prevent this?
This is a sign the pudding was not cooked for long enough after it first thickened. Once you see the first big, slow bubbles of a boil, set a timer for 1 full minute and keep whisking. This cooks out the raw starch flavor completely. Also make sure you are using cornstarch, not all-purpose flour, which requires a longer cooking time to lose its raw taste.
A skin has formed on top of my pudding. Is it ruined?
Not at all. The skin is simply dried pudding and is perfectly safe to eat. If you want a smooth surface for serving, carefully peel it off with a spoon before adding toppings. To prevent it next time, press a sheet of plastic wrap directly onto the surface of the warm pudding immediately after pouring it into the cups, with no air gaps between the plastic and the pudding.
My pudding tasted grainy after I added the dark chocolate. What went wrong?
Graininess in the chocolate finish usually means the chopped chocolate was added when the pudding was too hot and the cocoa butter separated (a process called seizing or breaking). Remove the pan from the heat and wait 30 full seconds before adding the chocolate and butter, then whisk gently. If your pudding does look broken or greasy, try whisking in 2 tablespoons of warm milk until it comes back together.

Storage & Make-Ahead

  • Storage: Store pudding cups tightly covered with plastic wrap (pressed directly to the surface) in the refrigerator for up to 4 days. The pudding is best within the first 2 days, when the texture is at its silkiest. Do not freeze, as the cornstarch-thickened custard will weep and turn grainy when thawed.
  • Make-Ahead: This pudding is an ideal make-ahead dessert. Prepare it up to 2 days in advance and keep it refrigerated with plastic wrap pressed to the surface. Add any garnishes (whipped cream, flaky salt, chocolate shavings) just before serving so they stay fresh and visually appealing.


Leave a Comment