This 4-ingredient navy bean soup is the kind of quiet little miracle dish that shows up when times are tight but people still want to take care of each other. A lady at our church used to bring a big glass casserole dish of this to every potluck during the hard months—no one ever guessed it was so simple, but everyone went back for seconds. The onions melt into a creamy, milky broth and the navy beans turn tender and comforting, making a stick-to-your-ribs soup that keeps you full for hours with almost no fuss.
Serve this navy bean soup piping hot in wide bowls with a side of crusty bread, biscuits, or even plain buttered toast for dipping into the creamy broth. A simple green salad or sliced apples on the side helps round out the meal without a lot of extra work. At potlucks, I like to set the warm glass casserole dish on a trivet with a ladle, and put out a shaker of black pepper and maybe a little hot sauce so folks can season their own bowls just the way they like.
4-Ingredient Navy Bean SoupServings: 6
Ingredients
1 pound dried navy beans, rinsed and picked over
1 large yellow onion, finely chopped
8 cups water
2 cups whole milk
1 1/2 teaspoons salt, plus more to taste (optional but recommended for flavor)
Directions
Rinse the dried navy beans under cool running water and pick out any broken beans or small stones. Drain well.
Place the rinsed beans in a large pot and cover with the 8 cups of water. Bring to a boil over medium-high heat.
Once the water reaches a steady boil, reduce the heat to low, cover the pot with a lid slightly askew, and simmer gently for 1 to 1 1/2 hours, stirring every 20 minutes or so. The beans are ready for the next step when they are very tender and some of them are starting to break down into the cooking liquid.
While the beans are simmering, finely chop the onion so the pieces are small enough to soften and almost melt into the soup. This helps create that creamy texture with little bits of onion still visible.
When the beans are tender, stir in the chopped onion and the salt (if using). Continue to simmer, uncovered, over low heat for another 20 to 25 minutes, stirring occasionally, until the onions are soft and the broth looks a bit thicker and starchy from the beans.
Pour in the whole milk and stir well, scraping the bottom of the pot to loosen any beans that may have settled. Keep the heat on low and let the soup gently heat through for 10 to 15 minutes, stirring often. Do not let it boil after adding the milk; it should be steamy and hot, but just under a simmer. As it heats, the broth will become pale, creamy, and slightly thick.
Taste the soup and add a little more salt if needed. If it seems too thick for your liking, you can stir in a splash of water or milk to loosen it. If it seems too thin, let it cook a few more minutes over low heat, stirring often, until it thickens to your liking.
For serving at a potluck, transfer the hot soup to a warm glass casserole dish so you can see the pale creamy beans and bits of onion through the sides. Let it rest for 5 to 10 minutes before serving; it will continue to thicken slightly as it sits, giving you that hearty, stick-to-your-ribs texture everyone loves.
Variations & Tips
For a little extra richness, you can replace 1 cup of the water with chicken broth, or stir in a tablespoon of butter along with the milk. If your family likes a bit more flavor, add 1/2 teaspoon of black pepper with the salt, or let people add pepper and hot sauce at the table so picky eaters can keep their bowls plain. For a creamier, almost chowder-like texture, lightly mash some of the beans in the pot with the back of a spoon before you add the milk. If you need to stretch the soup for a crowd, stir in another 1 to 2 cups of water and adjust the salt to taste; the beans will keep it filling. To make this friendlier for dairy-sensitive folks, you can swap the whole milk for an unsweetened, unflavored plant-based milk that doesn’t curdle easily (like oat milk), though the flavor will be a little different. Food safety tips: Always rinse and pick through dried beans before cooking to remove any debris. Simmer the beans until they are fully tender—undercooked beans can be hard to digest. Keep the heat low after adding milk so it doesn’t scorch or curdle; stir often, especially if using a thinner pot. If you’re taking this to a potluck, keep the soup hot (above 140°F / 60°C) in a warm oven, slow cooker, or insulated carrier, and refrigerate leftovers within 2 hours. Reheat leftovers gently over low heat, stirring frequently, and avoid boiling to maintain the creamy texture.