Substitute for milk in soups
Quick answer
For most cream-based or pureed soups, use evaporated milk 1:1 in place of whole milk — it holds up to heat without breaking and adds comparable body. If you need a dairy-free option, unsweetened oat milk at a 1:1 ratio is the most neutral-tasting plant-based swap widely available.
Some links below are affiliate links. As an Amazon Associate, AltPantry earns from qualifying purchases at no extra cost to you.
| Rank | Substitute | Ratio (replaces 1 cup milk) | Notes |
|---|---|---|---|
| #1 | Evaporated milk | 1:1 (use 1 cup evaporated milk per 1 cup whole milk) | Evaporated milk has roughly twice the protein and fat of whole milk per volume, which means it resists curdling under heat far better than fresh milk. It produces a noticeably richer, slightly more viscous soup — desirable in chowders, potato soup, and tomato bisque. The flavor is mildly caramel-adjacent from the canning process; in savory soups with strong aromatics or acid, this is undetectable. Avoid in very delicately flavored soups like a simple leek-and-potato where you want clean dairy flavor. |
| #2 | Heavy cream or half-and-half | Replace 1 cup whole milk with 1/2 cup heavy cream + 1/2 cup water, or 1 cup half-and-half straight | Half-and-half is the closest structural match to whole milk in soups — same heat behavior, similar fat content, minimal flavor change. Heavy cream cut with water replicates this but requires the extra step. Both options are more stable than milk under sustained heat. Using undiluted heavy cream will noticeably thicken the soup and increase richness; adjust accordingly if that's not the goal. |
| #3 | Unsweetened oat milk | 1:1 (1 cup unsweetened oat milk per 1 cup whole milk) | Among plant-based milks, oat milk has the most neutral flavor and the starch content gives it decent body in soups. It performs reasonably well in pureed and cream-based soups. The main failure mode is that it can thin out slightly compared to whole milk and may take on a faint grain flavor if reduced too aggressively. Do not use flavored or sweetened varieties. Barista-edition oat milks (which contain added stabilizers) hold up better to heat than standard. |
| #4 | Plain unsweetened soy milk | 1:1 (1 cup plain unsweetened soy milk per 1 cup whole milk) | Soy milk has the highest protein content of common plant-based milks, which gives it reasonable stability in soups. Flavor is more pronounced than oat milk — there's a mild beany undertone that can be detectable in lightly seasoned soups. Works best in heartier soups with bold spices or aromatics (corn chowder, curried lentil, minestrone-style) where the flavor is masked. Avoid in tomato-based soups — the acid can cause soy milk to curdle visibly at high heat unless stirred in off-heat and kept below a boil. |
| #5 | Chicken broth or vegetable broth | 1:1, but expect a significantly thinner, non-creamy result | This works in a pinch when you simply need liquid volume in a soup and the milk was contributing more to consistency than to creaminess (e.g., in a vegetable-heavy broth-based soup). It adds no fat or protein, so the soup will be noticeably less rich and creamy. This is widely cited as an acceptable emergency substitute — it keeps the soup functional but not cream-soup-adjacent. Use only when creaminess is not central to the dish. |
Why soups is different
In soups, milk serves two roles simultaneously: it adds fat-based richness and provides the liquid volume that sets the soup's final consistency. Unlike in baking, where milk's role is partly structural, in soups the main risks are curdling (from acid or excessive heat) and flavor clash. Cream-based soups are particularly sensitive — a substitute that breaks under heat or turns grainy will ruin the texture of the entire pot.
Common mistakes
The most common mistake is adding any milk-based substitute (dairy or plant-based) directly to a boiling soup. Reduce heat to a simmer before adding, then do not let it return to a full boil. A second frequent error is using sweetened or vanilla-flavored plant milks, which make the soup noticeably sweet and off-tasting — always check the label for added sugar. With soy milk specifically, adding it into a high-acid tomato base at high heat almost always causes visible curdling; temper it by stirring in off-heat or using it in lower-acid applications.
In cream-based soups — chowders, potato soup, tomato bisque — milk is less about flavor and more about fat content, body, and heat stability. Evaporated milk is the most reliable substitute across all of these because it’s already been heat-processed and won’t break at cooking temperatures. For dairy-free cooking, unsweetened oat milk is the current consensus pick among food writers and recipe developers; it’s the least intrusive in flavor and holds its texture reasonably well without additional stabilizers.
The one variable that changes everything in soup substitutions is acid. Tomato-based soups will curdle soy milk and can even destabilize fresh whole milk if the heat is too high. In those applications, evaporated milk or heavy cream diluted with water are the safest choices precisely because their higher fat and protein levels resist acid-induced curdling better than low-fat alternatives.
Frequently asked questions
- Can I use almond milk in soup?
- Almond milk works but is the weakest option among plant-based milks for soups. It has low protein and fat, so it contributes almost no richness and can taste slightly nutty in neutral-flavored soups. Unsweetened oat milk or soy milk will give noticeably better results.
- Will evaporated milk make my soup too thick?
- Slightly, yes — evaporated milk is more concentrated than whole milk, so the soup will come out a bit richer and marginally thicker. In chowders or bisques this is usually fine or even preferred. If you need a thinner result, cut the evaporated milk with a small amount of water (roughly 3 parts evaporated milk to 1 part water).
- My soup curdled after I added the milk substitute — what went wrong?
- Curdling happens when protein-containing liquids hit high heat or high acid too quickly. The fix: reduce the heat to low before adding any dairy or plant milk, add it gradually while stirring, and don't let the soup boil after it's been added. If you're making tomato soup, stir in the milk substitute off the heat entirely, then gently rewarm.
← Back to all milk substitutes