International · Drinks

French-Style Hot Chocolate

Real chocolate melted into milk and cream until it is thick enough to coat a spoon — closer to a drinking ganache than to cocoa powder in hot water. Small cups only.

4.8(1,966)Rated 4.8 out of 5 from 1966 reviews 15 min total Serves 2 servings Easy
Jump to Recipe Method
French-Style Hot Chocolate — international drinks recipe, served and ready to eat

Method

Tap a step to highlight it, or turn on Cook Mode for large type and step-by-step focus.

  1. Whisk the cornflour into 3 tablespoons of the cold milk until completely smooth.

  2. Warm the remaining milk, the cream, sugar and salt in a small pan over medium-low heat until steaming but not boiling.

  3. Take the pan off the heat and add the chopped chocolate. Leave it for 60 seconds without stirring so the residual heat melts it.

  4. Whisk until smooth and glossy — the mixture will thicken noticeably as the chocolate emulsifies.

  5. Return to low heat, whisk in the cornflour slurry, and cook for 2 to 3 minutes, whisking constantly, until it coats the back of a spoon.

  6. Stir in the vanilla and cinnamon.

  7. Pour into small cups — this is rich enough that 150 ml is a generous serving — and top with whipped cream.

Chef’s Tips

  • Use chocolate you would eat. The drink tastes exactly like the bar you put in it.
  • Never boil it. Boiling splits the emulsion and leaves a greasy film.
  • For a Spanish-style chocolate a la taza, double the cornflour and serve with churros.

Pairing Suggestions

  • Serve with churros for dipping
  • Excellent with a slice of orange
  • A good end to a cold-weather meal

Storage & Reheating

Refrigerate 3 days; it will set thick. Reheat gently with a splash of milk, whisking constantly.

Nutritional Highlights

Per serving, calculated from the ingredient list. Treat these as an estimate — brands and cuts vary.

486Calories
9gProtein
42gCarbs
32gFat
4gFibre
34gSugar
180mgSodium

Reader Reviews

Cooked this? Leave a review

Your rating out of 5

Reviews are stored in your browser only — nothing is sent to a server.