German milk soup is a gently sweet stovetop soup made by cooking wheat semolina in milk until it turns soft and creamy, then finishing it with butter and cinnamon sugar. It is served warm as a light meal, breakfast, or dessert; recipes vary by region and household, with some versions using bread, rice, or noodles instead of semolina.
Ingredients
- 4 cups (960 ml) whole milk
- 1/2 cup (85 g) fine wheat semolina
- 1 tablespoon (14 g) unsalted butter
- 2 tablespoons (25 g) granulated sugar
- 1/8 teaspoon (0.7 g) fine salt
- 1 teaspoon (4 g) granulated sugar, for the topping
- 1/2 teaspoon (1 g) ground cinnamon, for the topping
- 1/2 teaspoon (about 1 g) finely grated lemon zest, optional
Instructions
- Measure and prepare the topping. Measure the milk, semolina, butter, sugar, and salt before you begin, because the semolina needs to be added while you whisk. In a small bowl, stir together the 1 teaspoon of sugar and cinnamon for sprinkling. If using lemon zest, grate it finely and set it aside.
- Warm the milk. Pour the milk into a medium, heavy-bottomed saucepan. Set it over medium heat and warm it for about 7 minutes, stirring occasionally and scraping the bottom so the milk does not scorch. It should be steaming and close to a gentle simmer, with small bubbles around the edge; do not let it boil hard.
- Whisk in the semolina. Turn the heat to medium-low. Sprinkle the semolina into the milk in a thin, steady stream while whisking constantly. Adding it gradually helps the grains disperse instead of forming lumps. Whisk in the 2 tablespoons of sugar and the salt. If a few small clumps appear, keep whisking briskly rather than raising the heat.
- Simmer until creamy. Cook gently for about 6 minutes, stirring often and reaching into the corners of the pan with a whisk or wooden spoon. The soup is ready when the semolina is tender and the mixture lightly coats a spoon. It will continue to thicken as it stands, so take it off the heat while it is still pourable. Avoid a rolling boil, which can make milk catch on the pan and can cause uneven thickening.
- Finish and rest. Remove the pan from the heat. Stir in the butter and optional lemon zest until the butter melts. Leave the soup to stand for 3 minutes; this gives the semolina time to soften fully. Stir once more, taste, and adjust the sweetness with a little extra sugar if desired. If it has become thicker than you like, stir in a splash of warm milk.
- Serve. Ladle the soup into four bowls and sprinkle each portion with cinnamon sugar. Serve warm. The soup thickens as it cools, so offer extra warm milk at the table if you want to loosen individual bowls.
Tips
- Choose the right semolina. Fine wheat semolina, sometimes sold as semolina for porridge or fine semolina flour, gives the soup its characteristic soft, slightly grainy body. Coarse semolina takes longer to soften and can leave a firmer texture; if that is what you have, cook it gently for a few extra minutes and add a little more milk if needed. Cream of wheat is a practical substitute, but its finer grind usually makes the soup smoother and less distinctly grainy. Check package labels if you need to avoid wheat or gluten: ordinary semolina is made from wheat.
- Keep the heat moderate. Milk can scorch before it looks as though it is boiling, especially in a thin pan. Use a heavy-bottomed saucepan, stir while warming, and keep stirring once the semolina goes in. If you see a skin form on the surface, whisk it back in or lift it off; do not scrape any browned milk from the bottom into the soup.
- Adjust thickness after resting. Semolina absorbs liquid even after the pan comes off the heat. The soup should look a little looser than your ideal serving consistency when you stop cooking. If it becomes too thick, add warm milk a tablespoon or two at a time. If it remains thin, simmer it for another minute or two while stirring; it will also thicken as it cools.
- Sweeten to taste, not by guesswork. The measured sugar makes a gently sweet base, while cinnamon sugar adds more sweetness at the table. If you plan to serve it with sweet fruit or jam, reduce the sugar in the pan to 1 tablespoon (12 g). Add citrus zest sparingly: a little brightens the milk, while too much can dominate its mild flavor.
Serving Suggestions
Serve the soup warm in small bowls for breakfast, a light supper, or a simple dessert. Cinnamon sugar is the classic finishing touch in this version, but each person can add more to taste. A thin slice of butter melting on top is another home-style finish; use a small pat so it enriches the soup without making it greasy. For a less sweet bowl, skip the topping and add just a pinch of cinnamon.
Fresh or gently warmed fruit works well alongside the creamy base. Try sliced apples, pears, berries, or a spoonful of unsweetened stewed fruit. A little fruit preserves can be swirled through each portion, though it will make the bowl sweeter and add its own flavor. Plain toast or a buttered roll makes the soup feel more like a filling breakfast, while crisp toasted bread offers a pleasant contrast to the soft semolina. For dessert, serve smaller portions after a simple meal rather than adding several rich toppings.
Variations
Make it less sweet. Leave the sugar out of the saucepan and let people sweeten their own bowls. The milk and semolina still make a mild, comforting soup, and cinnamon can be sprinkled on without sugar. This approach is useful when serving it with sweet fruit or preserves.
Use a different grain. German milk soups are made in many household styles. To make a rice version, cook 1/2 cup (90 g) short- or medium-grain rice in the milk until tender, stirring frequently; it will take longer than semolina and may need extra milk. Small soup noodles are another option, but cook them according to their package directions and expect a brothier texture. These are alternate preparations, not direct one-for-one swaps for the semolina method.
Add bread for a rustic bowl. Tear about 2 cups (60 g) of soft bread into small pieces and place it in the serving bowls, then ladle the hot soup over it. The bread softens quickly and makes the dish more substantial. Use plain, lightly stale bread rather than strongly flavored or heavily seeded bread so it does not overpower the milk.
Change the aroma. A small pinch of freshly grated nutmeg can replace some or all of the cinnamon. Vanilla is also used in sweet milk preparations: stir in 1/2 teaspoon (2.5 ml) vanilla extract after cooking, not while the milk is heating, to preserve its aroma. For a dairy-free adaptation, use an unsweetened oat drink that is suitable for heating and plant-based butter; the result will taste different and may thicken less predictably, so adjust with semolina or liquid gradually.
Storage and Reheating
Milk soup is at its best freshly made, when the texture is soft and spoonable. Refrigerate leftovers within 2 hours of cooking, transferring them to a covered, shallow container so they cool promptly. Keep the soup refrigerated for 3 to 4 days. It will become quite thick as the semolina continues to absorb liquid; that change is normal and does not mean it has spoiled. Do not leave it at room temperature for extended storage.
Reheat only the portion you plan to eat, either in a saucepan over low heat or in a microwave-safe bowl. Add a splash of milk before heating and stir frequently so the bottom does not scorch and the texture loosens evenly. Heat leftovers to 165°F (74°C), the USDA FSIS safe temperature for reheated leftovers, checking with a food thermometer. If using a microwave, stir midway through and check the temperature in more than one spot, since hot and cool pockets can remain.
You can freeze the soup in a sealed freezer-safe container for up to 2 months for best quality, but the texture may turn grainy or separate when thawed. Thaw it overnight in the refrigerator, then reheat gently while whisking and adding milk as needed. Freezing is more practical when texture is less important than convenience; making a fresh batch is usually the better choice if you want the smoothest result.
Frequently Asked Questions
Is German milk soup usually sweet or savory?
There are different family and regional versions. This recipe is a sweet semolina soup, finished with cinnamon sugar, but milk soups can also be made with noodles, rice, or bread and seasoned less sweetly. The word describes a broad style of soup rather than one fixed recipe. If you prefer a savory direction, omit the sugar and cinnamon, season carefully with salt, and serve with plain bread; the flavor and character will be different from this sweet version.
Can I make German milk soup without semolina?
Yes. Cream of wheat is the closest easy-to-find substitute, though it makes a smoother, less distinctly grainy soup. Small pasta, rice, or pieces of bread are also used in other milk-soup styles, but each needs its own cooking time and amount of liquid. Do not simply replace the semolina with an equal volume of rice or pasta and follow the same six-minute simmer; those ingredients need longer to become tender and can absorb a different amount of milk.
Why did my soup turn lumpy?
The most common cause is adding the semolina all at once or pouring it into milk that is not being whisked. Sprinkle it in gradually while whisking continuously, then keep stirring as it simmers. If the soup has a few small lumps, whisk vigorously while it is hot. For persistent lumps, carefully blend it with an immersion blender, keeping the blender head submerged to avoid splashing hot milk. Next time, check that the semolina is fine and measure it before heating the milk.
Can I use low-fat milk or a plant-based milk?
Low-fat milk works, but the soup will taste less rich and may feel a little thinner; the semolina still provides body. Unsweetened oat drink is a useful plant-based alternative because it has a mild flavor and can be heated, though brands differ in thickness and sweetness. Use an unsweetened version so you can control the final flavor. Avoid assuming that every plant drink behaves like dairy milk: add it gradually if the soup needs thinning, and stir often as it heats.
How do I know when the semolina is cooked?
After about 6 minutes of gentle simmering, taste a small spoonful once it has cooled enough to sample safely. The grains should feel tender rather than hard or chalky, and the soup should lightly coat the spoon. If the texture is still firm, cook for another minute or two over low heat, stirring constantly. Semolina brands and grinds vary, so tenderness is a more useful guide than the clock alone.
Can I make it ahead for breakfast?
You can prepare it a day ahead and refrigerate it promptly, but it will set into a much thicker consistency overnight. Reheat it slowly with milk, stirring until smooth, and bring the leftovers to 165°F (74°C). For the freshest, loosest texture, measure the dry ingredients the night before and cook the soup in the morning; the stovetop method is short, and cinnamon sugar can be mixed ahead as well.
Related
- Cajun Fish Soup with Okra and Tomatoes
- Cajun Beef Vegetable Soup Recipe for Cozy Meals
- Cajun Chicken Stew From Scratch: A Hearty One-Pot Meal
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).