This 4-ingredient potato soup comes straight from the kind of frugal, no-nonsense cooking my great aunt relied on to get through lean Midwestern winters. It’s creamy, rich, and deeply comforting, built from pantry staples you probably already have. There’s no cheese, no fancy garnish—just potatoes, dairy, onions, and a little seasoning coaxed into a thick, velvety bowlful that feels like a hug on a chilly early spring night. If you’re watching your budget but still want something that feels special and satisfying, this is the kind of recipe that quietly earns a permanent spot in your rotation.
Serve this soup very hot in sturdy bowls with plenty of freshly ground black pepper on top. A simple green salad dressed with vinegar and oil makes a nice contrast to the richness, and if your budget allows, a heel of crusty bread or a couple of buttered toast slices are perfect for dipping into the thick broth. For a more substantial meal, pair it with a basic grilled or pan-seared sausage, or just add a plate of sliced apples on the table for a clean, sweet finish.
4-Ingredient Potato Soup
Servings: 4
Ingredients
2 tablespoons unsalted butter
1 medium yellow onion, finely chopped
2 pounds yellow potatoes, peeled and cut into 1/2-inch cubes
4 cups whole milk
1 1/4 teaspoons kosher salt, plus more to taste
1/2 teaspoon freshly ground black pepper, plus more for serving
Directions
Melt the butter in a large, heavy-bottomed pot over medium heat. When it foams, add the chopped onion and a pinch of salt. Cook, stirring occasionally, until the onion is soft and translucent but not browned, about 6 to 8 minutes. This slow, gentle cooking builds sweetness and depth without any extra ingredients.
Add the cubed potatoes to the pot and sprinkle in the 1 1/4 teaspoons of salt and the 1/2 teaspoon of black pepper. Stir well so every potato piece is lightly coated in the butter and onion mixture. Let the potatoes cook for 2 to 3 minutes, stirring once or twice; this brief contact with the fat helps them start to break down more evenly later.
Pour in the whole milk, scraping the bottom of the pot with a wooden spoon to release any flavorful bits. The milk should just cover the potatoes; if your pot is wide and the potatoes aren’t quite submerged, add a splash more milk or a little water until they are barely covered.
Increase the heat to medium-high and bring the mixture just to a gentle simmer, stirring frequently and watching closely so the milk does not scorch. As soon as you see small bubbles around the edges and a bit of steam, reduce the heat to low. Partially cover the pot with a lid, leaving it slightly ajar to prevent boiling over.
Simmer on low, stirring every 5 to 7 minutes and scraping the bottom of the pot, until the potatoes are very tender and easily crushed against the side of the pot with a spoon, 25 to 30 minutes. The milk will thicken as the potatoes cook and release their starch, turning into a creamy, pale soup base.
Once the potatoes are tender, use the back of a spoon or a potato masher to gently crush some of the potatoes directly in the pot. Aim to mash about one-third to one-half of them, leaving plenty of chunks for texture. This simple mashing step thickens the soup without any flour or cream.
Taste and adjust the seasoning with more salt and black pepper as needed. If the soup is thicker than you like, thin it with a splash of milk and warm it through. If it’s a bit thin, let it simmer uncovered for a few more minutes, stirring often, until it reaches a thick, creamy consistency that clings to the spoon.
Ladle the soup into chipped ceramic bowls or whatever you have on hand, and finish with a generous sprinkle of freshly ground black pepper over the top. Serve immediately while piping hot, when the broth is thick, creamy white and the tender yellow potato chunks are just beginning to break apart.
Variations & Tips
To keep the spirit of a 4-ingredient, budget-friendly soup, think of variations as small shifts rather than full reinventions. For a slightly lighter version, swap part of the whole milk for water (try 3 cups milk and 1 cup water), understanding the soup will be a bit less rich but still comforting. If you only have russet potatoes, they’ll work; they break down more readily, so hold back on mashing until you see how thick the soup gets. For a deeper onion flavor, slice the onions instead of chopping and cook them a bit longer until they’re just starting to turn golden at the edges before adding potatoes. If you’re cooking for someone who prefers a smoother texture, you can partially blend the soup with an immersion blender right in the pot, leaving some potato pieces intact so it doesn’t become gluey. To stretch the soup for an extra person without adding more potatoes, simply increase the milk by 1 cup and adjust the salt and pepper. Finally, if you have a leftover Parmesan rind or a small piece of ham bone on hand and your budget allows, you can simmer it with the potatoes for extra flavor, then remove it before serving—though my great aunt’s original version relied on the simplicity of potatoes, onion, milk, and seasoning alone.