I almost never have heavy cream in the house. I still make creamy pasta most weeks, usually on a Tuesday, usually with whatever is already in the fridge. The trick is knowing which everyday ingredient does the job heavy cream was doing, because they are not interchangeable and they do not all behave the same in a hot pan.
Heavy cream does two things: it adds fat, and it thickens as it reduces. Anything you swap in has to cover both. Milk alone covers neither, which is why a splash of milk in a pan of pasta gives you watery noodles and a sad puddle.
The one ingredient you already throw away
Starchy pasta water is the base of almost every creamy sauce I make. When pasta boils, it sheds starch into the water, and that starch is what lets fat and liquid hold together instead of separating into grease and puddle.
Two rules make it work. Salt the water like you mean it, about 1 tablespoon of kosher salt per 4 quarts, and do not drown the pasta. Use 3 to 4 quarts of water for a pound of pasta instead of a giant stockpot full. Less water, more starch, better sauce. Scoop out a full cup before you drain, every single time. I keep a coffee mug next to the stove so I stop forgetting.
The sauce comes together off the heat or on low heat, in a skillet, not in the colander. Pasta goes into the skillet with your fat and flavor, then splashes of pasta water go in while you toss, hard, for a good 60 to 90 seconds. It looks broken, then thin, then suddenly glossy. That moment is the whole technique.
Five bases that replace heavy cream
These are the five I actually rotate through. I have put them roughly in order of how often I reach for them.
| Base | Amount per 1 lb pasta | Best for | Watch out for |
|---|---|---|---|
| Starchy pasta water + butter or oil + hard cheese | 1 cup water, 4 tbsp butter, 2 oz cheese | Cacio e pepe style, garlic butter, lemon | Cheese clumps if the pan is too hot |
| Whole milk + roux | 2 cups milk, 3 tbsp butter, 3 tbsp flour | Baked pasta, mac and cheese, casseroles | Needs 5 minutes of simmering to lose the flour taste |
| Cream cheese | 4 oz, cubed | Fast skillet sauces, tomato cream, spinach | Add off heat or it goes grainy |
| Whole-milk ricotta | 1 cup | Lemon, peas, herbs, no-cook sauces | Part-skim turns chalky |
| Soaked cashews, blended | 3/4 cup raw cashews + 1 cup water | Dairy-free, mushroom or roasted garlic sauces | Needs a decent blender and 20 minutes of soaking |
Evaporated milk deserves a mention too. It is milk with most of the water removed, so it has the body cream has without the fat, and it does not curdle when it hits acid the way regular milk does. A 12-ounce can plus a handful of cheese makes a genuinely good mac and cheese. It tastes very slightly cooked, which I like in a baked dish and notice in a fresh skillet sauce.
What I skip: half-and-half in a pan with tomatoes or lemon, because it breaks; and low-fat anything, because fat is the point.
My go-to: 20-minute creamy garlic pasta with cream cheese
This is the one I make when it is 6:15 and nobody has decided anything. Cream cheese melts into a sauce that clings like cream does, and the pasta water keeps it loose.
Prep time: 10 minutes · Cook time: 12 minutes · Total time: 22 minutes · Serves: 4
What you will need
- 12 oz short pasta such as penne, rigatoni or shells
- 1 tablespoon kosher salt, for the pasta water
- 2 tablespoons unsalted butter
- 1 tablespoon olive oil
- 5 garlic cloves, thinly sliced
- 1/4 teaspoon red pepper flakes
- 4 oz cream cheese, cut into cubes and left on the counter while the water boils
- 1/2 cup freshly grated Parmesan, plus more for serving
- 1 1/2 cups reserved pasta water
- 2 cups baby spinach, or 1 cup frozen peas
- Zest and juice of 1/2 lemon
- 1/2 teaspoon black pepper
- Salt to taste
How to make it
- Bring 4 quarts of water to a boil with the kosher salt. Add the pasta and cook 1 minute short of the package time, so it still has a firm center.
- While the pasta cooks, melt the butter with the olive oil in a large skillet over medium-low. Add the garlic and red pepper flakes and cook 2 to 3 minutes, stirring, until the garlic is soft and pale gold. Do not let it brown at the edges; burnt garlic will taint the whole sauce.
- Scoop out 1 1/2 cups of pasta water. Drain the pasta.
- Turn the heat to low. Add the cream cheese cubes and 1/2 cup of the hot pasta water to the skillet. Whisk until smooth, about 1 minute. It will look thin. That is correct.
- Add the drained pasta, the Parmesan and the spinach. Toss constantly for 60 to 90 seconds, adding pasta water 1/4 cup at a time until the sauce coats every piece and slides rather than clumps. I usually use about 1 cup total.
- Off the heat, stir in the lemon zest, lemon juice and black pepper. Taste and salt. Serve right away, with more Parmesan.
If you want it to be dinner rather than a side, stir in shredded rotisserie chicken with the pasta, or brown 1 pound of ground chicken or Italian sausage in the skillet first and set it aside while you make the garlic base. Chicken needs to reach 165°F (74°C) on an instant-read thermometer, ground beef or pork 160°F (71°C).
Why sauces break, and how to fix one mid-cook
Grainy cheese sauce almost always means the pan was too hot. Parmesan, cheddar and cream cheese all seize above a gentle simmer. Pull the skillet off the burner, let it cool for 30 seconds, then add cheese in handfuls while tossing.
Greasy and separated means there was not enough starch to bind the fat. Add another few tablespoons of pasta water and keep tossing over low heat. If you already dumped the water, a teaspoon of cornstarch whisked into 1/4 cup of plain water works as a rescue.
Curdled and speckled after adding tomatoes or lemon means the dairy hit acid while it was too thin and too hot. Cream cheese, ricotta and evaporated milk resist this far better than milk does. When I use milk with tomatoes, I build a roux first, because the flour protects the proteins.
Too thick by the time it hits the table is the most common one at my house, since sauce keeps tightening as it cools. Save an extra half cup of pasta water and loosen the bowl right before serving.
Substitutions I have actually tested
Whole-milk Greek yogurt makes a tangy, light sauce, but it has to go in off the heat, stirred into hot pasta, never simmered. Sour cream behaves the same way. Both are good with dill, cucumber, smoked salmon, less good with long-cooked tomato.
Full-fat canned coconut milk is my choice for dairy-free when the flavors lean toward curry, chili or lime. For an Italian-leaning sauce, cashew cream is much more neutral: soak 3/4 cup raw cashews in boiling water for 20 minutes, drain, then blend with 1 cup fresh water until completely smooth.
Pureed white beans are the sleeper. Blend one drained 15-ounce can with 1/2 cup pasta water and a glug of olive oil, and you get a thick, mild base that carries garlic and rosemary well. It tastes like beans if you are looking for it, and like sauce if you are not.
Skip nondairy milks that are unsweetened but thin, like most almond and rice milk, unless you thicken them. On their own they will not coat pasta.
Storing and reheating
Cream cheese and ricotta sauces keep in an airtight container in the fridge for 3 to 4 days. Pasta-water-based sauces like cacio e pepe are best the day you make them; they set up firm and never quite come back.
Reheat in a skillet over low heat with a splash of milk or water, 2 to 3 tablespoons per portion, tossing until it loosens. The microwave works if you go in 30-second bursts and stir between each one, but it will be a little grainier.
I do not freeze dairy pasta sauces on their own, since they separate on thawing. Baked pasta is the exception: a casserole made with a milk-and-roux sauce freezes well for up to 2 months, covered tightly, and reheats at 350°F (175°C) for about 45 minutes from frozen, foil on for the first 30.

